【发布时间】:2009-11-16 11:51:09
【问题描述】:
我们在 gridview 中使用动态文本框。当在网格内的每个文本框上按下 tab 键时,我们需要使用数据库中的总值和上一个文本框中的值进行一些计算,结果应该显示在下一个文本框中。
问候 吉萨
【问题讨论】:
-
您使用的是哪种语言/框架?
标签: c# asp.net dynamic controls
我们在 gridview 中使用动态文本框。当在网格内的每个文本框上按下 tab 键时,我们需要使用数据库中的总值和上一个文本框中的值进行一些计算,结果应该显示在下一个文本框中。
问候 吉萨
【问题讨论】:
标签: c# asp.net dynamic controls
希望这个示例能让您顺利上路。在网格中,将 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
【讨论】: