我在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。 我在很多方面尝试使用查找控制方法,但没有工作。请指导我。
答案 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");
}
}