将网格视图一行文本框值传递给另一行文本框值
本文关键字:文本 一行 网格 视图 值传 | 更新日期: 2023-09-27 18:31:17
我有 10 行的网格视图,每行有 2 列,即文本框和复选框。
我要做的就是输入文本框值为1000,然后单击第一行的复选框,然后值必须转到第二行的文本框,然后单击第二行的复选框,然后值必须转到文本框的第三行,依此类推。
我试过这个,
protected void txtintroId_TextChanged(object sender, EventArgs e)
{
TextBox txt = (TextBox)sender;
GridViewRow grid = ((GridViewRow)txt.Parent.Parent.Parent);
TextBox txtIntro = (TextBox)txt.FindControl("txtintroId");
}
在这里我得到第一行值,但我如何将其传递给第二行。
协助我
这是完整的工作代码(根据您的要求)
- 创建如下所示的网格视图
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%#Eval("txtcolumn") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox2_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
-
在 C# 代码中添加函数
protected void CheckBox1_CheckedChanged(object sender, EventArgs e) { int rowNo=0; foreach (GridViewRow GV1 in GridView1.Rows) { rowNo++;//
if (rowNo < GridView1.Rows.Count) //Checking that is this last row or not {
`{
//if no CheckBox chkbx= (CheckBox)GV1.FindControl("CheckBox1"); TextBox curenttxtbx = (TextBox)GV1.FindControl("TextBox1"); if (chkbx.Checked == true )int nextIndex = GV1.RowIndex + 1;//Next row TextBox txtbx = (TextBox)GridView1.Rows[nextIndex].FindControl("TextBox1"); txtbx.Text = curenttxtbx.Text; } } //if yes else { //For last row //There is no next row }
}}
-
我用这个数据表作为数据源
数据表表 = 新的数据表(); 桌子。Columns.Add("txtcolumn", typeof(string));
table.Rows.Add("1"); table.Rows.Add("32"); table.Rows.Add("32"); table.Rows.Add("32"); table.Rows.Add("3"); table.Rows.Add("32"); table.Rows.Add("32");
我测试了这段代码,它正在根据您的要求工作。(很抱歉这种格式错误。 我稍后会这样做,或者请一些机构更正格式:))