在C#中访问GridView中的DropDownList

时间:2014-09-11 10:31:50

标签: asp.net c#-4.0

我在ASP.net的Webform中的GridView中有以下代码

<columns>
    <asp:TemplateField SortExpression="DESIGNATION">
                        <HeaderTemplate>
                             <asp:Literal ID="Literal1" runat="server">Designation<br /></asp:Literal>
                             <asp:DropDownList ID="ddlDesignation" runat="server" BorderColor="#0000CC"></asp:DropDownList>
                        </HeaderTemplate>
                    <ItemTemplate>
                        <asp:Literal ID="Literal2" runat="server" Text='<%# Bind("DESIGNATION") %>'></asp:Literal>
                         </ItemTemplate>
                </asp:TemplateField>
</columns>

<asp:TemplateField SortExpression="CNIC">
                    <HeaderTemplate>
                         <asp:Literal ID="Literal1" runat="server">CNIC<br /></asp:Literal>
                        <asp:TextBox runat="server" ID="searchBox" BorderColor="#0000CC"></asp:TextBox>
                    </HeaderTemplate>
                <ItemTemplate>
                    <asp:Literal ID="Literal2" runat="server" Text='<%# Bind("CNIC") %>'></asp:Literal>
                     </ItemTemplate>
            </asp:TemplateField>

我想在C#中的代码隐藏文件中访问DropDownList。 我在很多方面尝试使用查找控制方法,但没有工作。请指导我。

3 个答案:

答案 0 :(得分:2)

DropDownList存在于GridView的所有行中。如果你愿意,你需要找到特定的行。

如果你知道行索引,他们会尝试这个:

DropDownList myDDL = (DropDownList)gview.Row(index).FindControl("ddlDesignation");

或者您也可以在GridView的Row Databound事件中找到所有行。

DropDownList myDDL = (DropDownList)e.Row.FindControl("ddlDesignation");

答案 1 :(得分:1)

在GridView的RowDataBound中:

  protected void gdv_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (gdv.HeaderRow != null)
            {
                TextBox txt = (TextBox)gdv.HeaderRow.FindControl("txt");
            }
        }

答案 2 :(得分:1)

在你的Gridview RowDataBound中尝试这样的事情:

protected void Grd_RowDataBound(object sender, GridViewRowEventArgs e)
{
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DropDownList drp = (DropDownList)e.Row.FindControl("ddlDesignation");
        }
}