我有这样的gridview输出。
当我点击编辑链接时,我需要传递unitsinstock值应转移到文本框控件。它出现在templatefield中。这是我的c#代码:
TextBox tt = (TextBox)GridView1.Rows[i].Cells[3].FindControl("TextBox2").ToString();
TextBox text_ref = (TextBox)GridView1.Rows[e.NewEditIndex].Cells[2].FindControl("TextBox2");
TextBox3.Text = text_ref.Text;
有什么不对吗?当我调试e.NewEdtIndex=0
,TextBox3=null
时。怎么解决这个问题?
答案 0 :(得分:2)
您应该使用EditItemTemplate
。例如,当您编辑行时,上面的代码会将 unitsinstock 值绑定到 unitsinstock copy 文本框。
也改变SqlDataSource:
<UpdateParameters>
<asp:Parameter Name="unitsinstock" Type="Int32" /> /*Put the correcly type here*/
/*other fields*/
</UpdateParameters>
GridView:
<asp:TemplateField HeaderText="unitsinstock">
<ItemTemplate>
<asp:label id="labelUnitsinstock" runat="server" text='<%#Eval("unitsinstockActual")%>'>
</asp:label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="unitsinstock copy">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"
Text='<%# Bind("unitsinstock") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
请点击此处了解更多信息Using TemplateFields in the GridView Control