GridView页脚中的“绑定下拉列表”,位于“选项卡控件”中

时间:2014-01-23 13:59:01

标签: c# asp.net ajax tabs

我正在使用ASP.NET和Entity Framework以及AJAX的Tab控件  我在gridview中有一个下拉列表控件,它在TAB控件中无法绑定下拉列表控件。 标签控制 - > Gridview - >下拉列表 我的ASP.NET代码是

<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)
            { }
        }

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

1 个答案:

答案 0 :(得分: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%肯定这会工作......