c# - 如何使用 asp.net C# 从 GridView 中的 TemplateField 获取值?

标签 c# asp.net gridview

我正在尝试检索输入到 Gridview 文本框中的数据,但我没有从中获取任何数据。这是我的代码:

在 ASP 中

<asp:GridView ID="Add" runat="server">
    <Columns>
         <asp:TemplateField HeaderText="Select" HeaderStyle-Width="100px">
               <ItemTemplate>
                     <asp:CheckBox ID="cbox_Select" runat="server" />
               </ItemTemplate>
         </asp:TemplateField>
         <asp:BoundField DataField = "Name" HeaderText = "Fee Type" />
         <asp:TemplateField HeaderText="Amount" HeaderStyle-Width="100px">
               <ItemTemplate>
                     <asp:TextBox ID="TextBox" runat="server"></asp:TextBox>
               </ItemTemplate>
         </asp:TemplateField>
     </Columns>
</asp:GridView>

在 C# 中,

for (int i = 0; i< n;i++)
{
      string a = ((TextBox)Add.Rows[i].Cells[2].FindControl("TextBox")).Text;
}

谁能帮我解决这个问题?

最佳答案

您想遍历 GridViewRowCollection , 并找到控件。

foreach (GridViewRow row in Add.Rows)
{
    var textbox = row.FindControl("TextBox") as TextBox;
    var a = textbox.Text;
}

演示

<asp:Button ID="Button1" runat="server" Text="SubmitButton" 
    OnClick="SubmitButton_Click" />
<asp:GridView ID="Add" runat="server">
    <Columns>
        <asp:TemplateField HeaderText="Amount" HeaderStyle-Width="100px">
            <ItemTemplate>
                <asp:TextBox ID="TextBox" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

public class SampleClass
{
    public int Id { get; set; }
    public string Text { get; set; }
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Add.DataSource = new List<SampleClass>()
        {
            new SampleClass {Id = 1, Text = "One"},
            new SampleClass {Id = 2, Text = "Two"},
        };
        Add.DataBind();
    }
}

protected void SubmitButton_Click(object sender, EventArgs e)
{
    foreach (GridViewRow row in Add.Rows)
    {
        var textbox = row.FindControl("TextBox") as TextBox;
        var a = textbox.Text;
    }
}

关于c# - 如何使用 asp.net C# 从 GridView 中的 TemplateField 获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24328960/

相关文章:

c# - Linq toEntity contains 不适用于预存储的变量

c# - 如何使用 StreamReader.ReadAsync(Memory<Char>, CancellationToken)

javascript - 如何将 jQuery 变量值发送到 asp.net 中的服务器端

asp.net - 设置gridview标题颜色

c# - 从 VK API 解析大学

c# - 有没有办法在调试期间从对象获取类型元数据

asp.net - [Cannot update project reference ''] & [Validating Web Site] 延迟的解决方案

c# - 将文本字段数据保存到数据库的代码

c# - 如何通过逗号拆分字符串填充 gridview?

.net - 在gridview的末尾插入复选框列