【问题标题】:asp.net datagrid findcontrol returns null for textboxasp.net datagrid findcontrol 为文本框返回 null
【发布时间】:2011-10-30 11:30:30
【问题描述】:

在 ASP.Net 数据网格中,我放置了一个下拉菜单和一个文本框(多行)。我需要循环读取这些值。我正在使用 findControl 方法获取下拉列表的引用对象,但是当我尝试使用文本框时,它返回 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。

【问题讨论】:

    标签: c# asp.net datagrid


    【解决方案1】:

    你有一个错字:

    TextBox txt= DataGrid1.Items[i].Cells[2].FindControl("txtDetaills") as TextBox;
    

    应该是:

    TextBox txt= DataGrid1.Items[i].Cells[2].FindControl("txtDetails") as TextBox;
    

    因此,txtDetaills 应该是 txtDetails

    【讨论】:

      【解决方案2】:

      txtDetails,而不是txtDetaills - Ls 太多了!

      【讨论】:

        猜你喜欢
        • 2013-09-20
        • 1970-01-01
        • 1970-01-01
        • 2012-11-21
        • 2012-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-23
        相关资源
        最近更新 更多