如何在我的C#代码中引用来自gridview的文本框

本文关键字:gridview 文本 引用 我的 代码 | 更新日期: 2023-09-27 18:21:43

我发现的所有例子都没有帮助。我在网格视图的页脚有一个名为"txtMyCoverage"的文本框。在我的代码库中,我只想引用那个文本框来表示

a = txtMyCoverage.Text;

我试过

gvLimit.FindControl("txtMyCoverage").ToString();

但它返回空引用。谢谢你的帮助!

这是我的网格

<asp:GridView Width="100%" ID="gvLimits"
CssClass="gridView no_min_width"
runat="server"
AutoGenerateColumns="False"
CellPadding="2" ShowFooter="true"
DataKeyNames="PolicyLimitID, LimitID"
HorizontalAlign="Center"
OnRowDataBound="gvLimits_RowDataBound">
<RowStyle HorizontalAlign="Center" />
<Columns>
    <asp:TemplateField HeaderText="Coverage">
        <ItemTemplate>
            <asp:Label ID="txtLimitLetter" runat="server" Width="20px" CssClass="center" Text='<%# Bind("Limit.LimitLetter") %>' Enabled="false" ></asp:Label>
        </ItemTemplate>
        <FooterTemplate>
            <asp:TextBox ID="txtMyCoverage" runat="server" Width="50px" CssClass="center" ></asp:TextBox>
        </FooterTemplate>
</Columns>
</asp:GridView>

如何在我的C#代码中引用来自gridview的文本框

如果您像这样使用TextBox:

 <asp:TemplateField HeaderText="Coverage">
        <ItemTemplate>
            <asp:Label ID="txtLimitLetter" runat="server" Width="20px" CssClass="center" Text='<%# Bind("Limit.LimitLetter") %>' Enabled="false" ></asp:Label>
        </ItemTemplate>
        <FooterTemplate>
            <asp:TextBox ID="txtMyCoverage" runat="server" Width="50px" CssClass="center" ></asp:TextBox>
        </FooterTemplate>

然后你可以找到这样的行绑定:

关于网格的RowBoundEvent

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Footer)
{
TextBox txtLimitLetter=(TextBox)e.Row.FindControl("txtLimitLetter");
}
}

或您可以查看网格视图行

foreach(GridViewRow row in GridView2.Rows)
{
    if (e.Row.RowType == DataControlRowType.Footer)
    {
    TextBox txtLimitLetter=(TextBox)e.Row.FindControl("txtLimitLetter");
    }
}