我们在gridview中使用动态文本框。当在网格内的每个文本框上按下Tab键时,我们需要使用数据库中的总值和前一个文本框中的值进行一些计算,结果应显示在下一个文本框中。
此致 格塔
答案 0 :(得分:1)
希望这个例子可以帮助你。在网格中,将2个文本框列设置为模板列,以便您可以定义文本框 id 和 OnTextChanged 事件。 AutoPostBack 属性也很重要,因此当用户标签输出时,文本框会发回。在后面的代码中,您需要处理 OnTextChanged 事件,并使用 FindControl 方法获取对文本框的引用。
标记:
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="Texbox_Changed" AutoPostBack="true" ></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" ></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
代码背后:
Protected Sub Texbox_Changed(ByVal sender As Object, ByVal e As System.EventArgs)
Dim Param As String = CType(sender, TextBox).Text
Dim Result As String = Param 'TODO: perform calculation
CType(GridView1.Rows(GridView1.EditIndex).FindControl("TextBox2"), TextBox).Text = Result
End Sub