2014-01-23 27 views
0

我正在使用ASP.NET和實體框架和AJAX的選項卡控制 我有一個下拉列表控件在gridview中是在TAB控件我無法綁定下拉列表控件。 選項卡控制 - >的GridView - >下拉列表 我的ASP.NET代碼是綁定下拉列表GridView頁腳是在選項卡控制

<ajax:TabContainer ID="TabContainer2" runat="server" CssClass="fancy fancy-green"> 
       <ajax:TabPanel ID="TabPanel1" runat="server"> 
        <HeaderTemplate> 
         College Toppers 
        </HeaderTemplate> 
        <ContentTemplate> 
         <asp:Panel ID="Panel1" runat="server"> 
          <div> 
           <asp:GridView ID="GridView1" DataKeyNames="TL_ID" runat="server" 
            AutoGenerateColumns="False" CssClass="Gridview" ShowFooter="True" OnRowDataBound="GRVToppers_RowDataBound"> 
            <Columns> 
             <asp:TemplateField> 
              <EditItemTemplate> 
               <asp:ImageButton ID="imgbtnUpdate" CommandName="Update" runat="server" ImageUrl="~/Admin/Images/update.jpg" ToolTip="Update" Height="20px" Width="20px" /><asp:ImageButton ID="imgbtnCancel" runat="server" CommandName="Cancel" ImageUrl="~/Admin/Images/Cancel.jpg" ToolTip="Cancel" Height="20px" Width="20px" /> 
              </EditItemTemplate> 
              <FooterTemplate> 
               <asp:ImageButton ID="imgbtnAdd" runat="server" ImageUrl="~/Admin/Images/AddNewitem.jpg" CommandName="AddNew" Width="30px" Height="30px" ToolTip="Add new User" ValidationGroup="validaiton" /> 
              </FooterTemplate> 
              <ItemTemplate> 
               <asp:ImageButton ID="imgbtnEdit" CommandName="Edit" runat="server" ImageUrl="~/Admin/Images/Edit.jpg" ToolTip="Edit" Height="20px" Width="20px" /><asp:ImageButton ID="imgbtnDelete" CommandName="Delete" runat="server" ImageUrl="~/Admin/Images/delete.jpg" ToolTip="Delete" Height="20px" Width="20px" /> 
              </ItemTemplate> 
             </asp:TemplateField> 
             <asp:TemplateField HeaderText="Topper List No"> 
              <EditItemTemplate> 
               <asp:Label ID="lblEditTpid" runat="server" Text='<%#Eval("TL_ID") %>' /> 
              </EditItemTemplate> 
              <ItemTemplate> 
               <asp:Label ID="lblShowTpid" runat="server" Text='<%#Eval("TL_ID") %>' /> 
              </ItemTemplate> 
              <ControlStyle Width="10px" /> 
             </asp:TemplateField> 
             <asp:TemplateField HeaderText="Department Name"> 
              <EditItemTemplate> 
               <asp:DropDownList ID="ddlEditDeptname" runat="server" Width="90" DataTextField='<%#Bind("DEPT_NAME") %>' DataValueField='<%#Bind("DEPT_ID") %>' AppendDataBoundItems="true"></asp:DropDownList> 
              </EditItemTemplate> 
              <FooterTemplate> 
               <asp:DropDownList ID="ddladdnewDeptname" runat="server" Width="90" DataTextField='<%#Bind("DEPT_NAME") %>' DataValueField='<%#Bind("DEPT_ID") %>' AppendDataBoundItems="True"></asp:DropDownList> 
              </FooterTemplate> 
              <ItemTemplate> 
               <asp:Label ID="lblShowDeptname" runat="server" Text='<%#Eval("DEPT_NAME") %>' Width="90" /> 
              </ItemTemplate> 
              <ControlStyle Width="30px" /> 
             </asp:TemplateField> 
            </Columns> 
            <HeaderStyle BackColor="#61A6F8" Font-Bold="True" ForeColor="White"></HeaderStyle> 
           </asp:GridView> 
          </div> 
         </asp:Panel> 
        </ContentTemplate> 
       </ajax:TabPanel> 
</ajax:TabContainer> 

================== 我的C#代碼是

protected void GRVToppers_RowDataBound(object sender, GridViewRowEventArgs e) 
     { 
      try 
      { 
       var dept = from n in ecme.DEPT_MASTER 
          select new { n.DEPT_ID, n.DEPT_NAME }; 
       DropDownList ddl = null; 
       if (e.Row.RowType == DataControlRowType.Footer) 
       { 
        ddl = e.Row.FindControl("ddladdnewDeptname") as DropDownList; 
        int cnt = 0; 

        cnt = dept.Count(); 
        ListItem[] items = new ListItem[cnt]; 
        for (int i = 0; i < cnt; i++) 
        { 
         items[i] = new ListItem("DEPT_NAME", "DEPT_ID"); 
        } 
       } 
      } 
      catch (Exception) 
      { } 
     } 

========================

回答

0

你可以這樣做很容易... 刪除

DataTextField='<%#Bind("DEPT_NAME") %>' DataValueField='<%#Bind("DEPT_ID") %>' AppendDataBoundItems="True" 

DataTextField='<%#Bind("DEPT_NAME") %>' DataValueField='<%#Bind("DEPT_ID") %>' AppendDataBoundItems="true" 

從ASPX代碼

和更改在

protected void GRVToppers_RowDataBound(object sender, GridViewRowEventArgs e) 
     { 

       if (e.Row.RowType == DataControlRowType.Footer) 
       { 
        var dept = from n in ecme.DEPT_MASTER 
           select new { n.DEPT_ID, n.DEPT_NAME }; 

        DropDownList ddl = (DropDownList)e.Row.FindControl("ddladdnewDeptname"); 

        ddl.DataTextField = "DEPT_NAME"; 
        ddl.DataValueField = "DEPT_ID"; 
        ddl.DataSource = dept.ToList(); 
        ddl.DataBind(); 
        ddl.Items.Insert(0, "--Select Department--"); 
       } 
} 

100%肯定這要工作......

+0

由於Quabiz其工作 – nisar

相關問題