datalist problem

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • lisles
    New Member
    • Jan 2010
    • 40

    datalist problem

    i have a datalist that displays the titles of events.When i click a title i want to display the event details like date,venue,desc ription... outside the datalist
    this is my code:
    Code:
          <asp:DataList ID="dlEvents" runat="server" HorizontalAlign="Left" GridLines="Both"
                            OnSelectedIndexChanged="SelectedIndexChanged">
                            <HeaderTemplate>
                                Events
                            </HeaderTemplate>
                            <HeaderStyle Font-Bold="true" Font-Size="16px" />
                            <ItemTemplate>
                                <table onmouseover="dg_changeBackColor(this, true);" onmouseout="dg_changeBackColor(this, false);">
                                    <tr>
                                        <td>
                                            <%--  <asp:Label ID="lblEvntId" runat="server" Text='<%# Bind("prison_event_id") %>' Visible="false"></asp:Label>--%>
                                            <asp:Label ID="lblEvntTitle" runat="server" Text='<%# Bind("prison_event_title") %>'></asp:Label>
                                            <asp:Label ID="lblEvntId" runat="server" Text='<%# Bind("prison_event_id") %>' Visible="false"></asp:Label>
                                            <asp:Label ID="lblEvntDate" runat="server" Text='<%# Bind("prison_event_date") %>'
                                                Visible="false"></asp:Label></td>
                                        <asp:Label ID="lblEvntVenue" runat="server" Text='<%# Bind("prison_event_venue") %>'
                                            Visible="false"></asp:Label>
                                        <asp:TextBox ID="txtEvntDesc" runat="server" Text='<%# Bind("prison_event_description") %>'
                                            ReadOnly="true" Visible="false"></asp:TextBox>
                                        <asp:Button CommandName="Select" runat="server" Text="View Details" ID="btnEvntDetails">
                                        </asp:Button>
                                        </td>
                                    </tr>
                                </table>
                            </ItemTemplate>
                        </asp:DataList></div>
                    <div id="body-right">
                        <table id="tblEvntDetails">
                            <tr>
                                <td>
                                    <asp:Label ID="lblEvntId" runat="server" Visible="false"></asp:Label>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <asp:Label ID="lblEvntTitle" runat="server"></asp:Label></td>
                            </tr>
                            <tr>
                                <td>
                                    <asp:Label ID="lblEvntDate" runat="server"></asp:Label></td>
                            </tr>
                            <tr>
                                <td>
                                    <asp:Label ID="lblEvntVenue" runat="server"></asp:Label>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <asp:TextBox ID="txtEvntDesc" runat="server" ReadOnly="true"></asp:TextBox>
                                </td>
                            </tr>
                        </table>
    the codebehind has the following code
    Code:
      protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                this.loadData();
    
            }
        }
    
        protected void loadData()
        {
    
            BLL_NewsAndEvents objNe = new BLL_NewsAndEvents();
            objNe.viewEvents(this.dlEvents);
            objNe.Close();
    
        }
    protected void SelectedIndexChanged(object sender, EventArgs e)
        {
           //  string ID = (String)dlEvents.DataKeyField;
           Label lblEvntId = (Label)dlEvents.SelectedItem.FindControl("lblEvntId");
            Label lblEvntTitle = (Label)dlEvents.SelectedItem.FindControl("lblEvntTitle");
            Label lblEvntDate = (Label)dlEvents.SelectedItem.FindControl("lblEvntDate");
            Label lblEvntVenue = (Label)dlEvents.SelectedItem.FindControl("lblEvntVenue");
            TextBox txtEvntDesc = (TextBox)dlEvents.SelectedItem.FindControl("txtEvntDesc");
    
    
        }
    but when i run the code the get the following error:

    DataBinding: 'System.Data.Da taRowView' does not contain a property with the name 'prison_event_i d'.I have 'prison_event_i d' in my table

    please tell me wot to do
  • lisles
    New Member
    • Jan 2010
    • 40

    #2
    thanx.I changed my code a bit...
    Code:
           <asp:DataList ID="dlEvents" runat="server" Width="90%" GridLines="both" CellPadding="5"
                              OnSelectedIndexChanged="SelectedIndexChanged" DataKeyField="prison_event_title">
                             <%--OnItemCommand="getSelected"--%>
                            <HeaderStyle BackColor="lightsteelblue"/>
                            <SelectedItemStyle BackColor="lightgreen" />
                            <HeaderTemplate>
                                Titles
                            </HeaderTemplate>
                            <ItemTemplate>
                                <asp:LinkButton ID="Linkbutton1" runat="server" CommandName="select" Text='<%# Bind("prison_event_title") %>' />
                            </ItemTemplate>
                            <SelectedItemTemplate>
                                <asp:DataList ID="dlEvntDetails" runat="server">
                                <HeaderTemplate>
                                Event Details
                                </HeaderTemplate>
                                <ItemTemplate><div id="title" class="title" runat="server">
                                    <asp:Label ID="lblEvntTitle" runat="server" Text='<%# Bind("prison_event_title") %>'></asp:Label></div>
                                    <asp:Label ID="lblEvntId" runat="server" Text='<%# Bind("prison_event_id") %>' Visible="false"></asp:Label>
                                    <asp:Label ID="lblEvntDate" runat="server" Text='<%# Bind("prison_event_date") %>'></asp:Label></td>
                                    <asp:Label ID="lblEvntVenue" runat="server" Text='<%# Bind("prison_event_venue") %>'></asp:Label>
                                    <asp:TextBox ID="txtEvntDesc" runat="server" Text='<%# Bind("prison_event_description") %>'
                                        ReadOnly="true"></asp:TextBox></ItemTemplate>
                                </asp:DataList>
                                
                                
                               
                            </SelectedItemTemplate>
                        </asp:DataList>
    and thhe code behind is
    Code:
        protected void SelectedIndexChanged(object sender, EventArgs e)
        {
           
            Label lblEvntId = (Label)dlEvents.SelectedItem.FindControl("lblEvntId");
            Label lblEvntTitle = (Label)dlEvents.SelectedItem.FindControl("lblEvntTitle");
            Label lblEvntDate = (Label)dlEvents.SelectedItem.FindControl("lblEvntDate");
            Label lblEvntVenue = (Label)dlEvents.SelectedItem.FindControl("lblEvntVenue");
            TextBox txtEvntDesc = (TextBox)dlEvents.SelectedItem.FindControl("txtEvntDesc");
            DataList dlEvntDetails = (DataList)dlEvents.SelectedItem.FindControl("dlEvntDetails");
            BLL_NewsAndEvents objNE = new BLL_NewsAndEvents();
            objNE.viewEvntDetails(dlEvntDetails, txtEvntDesc.Text.Trim(), lblEvntVenue.Text.Trim(), lblEvntDate.Text.Trim(), lblEvntTitle.Text.Trim(), lblEvntId.Text.Trim());
            objNE.Close();
        
        }
    but the values are not gettin passed to the codebehind...pl ease tell me wot to do

    Comment

    Working...