[英]asp.net datagrid findcontrol returns null for textbox
在ASP.Net datagrid中,我放置了一個下拉列表和一個文本框(多行)。 我需要在循環中讀取這些值。 我使用findControl方法獲取下拉列表的引用對象,但是當我嘗試使用textbox時,它返回null。
這是我的aspx代碼
.....
<asp:TemplateColumn>
<HeaderTemplate>
<asp:DropDownList
ID="HeaderDropDown" Runat="server"
AutoPostBack="True"
OnSelectedIndexChanged="DropDown_SelectedIndexChanged" />
</HeaderTemplate>
<ItemTemplate>
<asp:DropDownList
ID="ItemDropDown" Runat="server"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn >
<HeaderTemplate>
Details
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="txtDetails" runat="server" TextMode="MultiLine"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
...............
C#代碼是
for (int i = 1; i < DataGrid1.Items.Count; i++)
{
DropDownList lst = DataGrid1.Items[i].Cells[1].FindControl("ItemDropDown") as DropDownList;
String value = lst.SelectedValue;
String StaffId = DataGrid1.Items[i].Cells[0].Text;
TextBox txt= DataGrid1.Items[i].Cells[2].FindControl("txtDetaills") as TextBox;
}
我正確獲取了lst對象,但txt始終返回null。
你有一個錯字:
TextBox txt= DataGrid1.Items[i].Cells[2].FindControl("txtDetaills") as TextBox;
應該:
TextBox txt= DataGrid1.Items[i].Cells[2].FindControl("txtDetails") as TextBox;
因此, txtDetaills
應該是txtDetails
txtDetails
,而不是txtDetaills
- 太多Ls!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.