net 网站,我在 datagrid 控件中有文本框控件。
我想在 javascript 中添加 textchange 事件,我需要对 datagrid 中文本框内的值求和,并在网格外的标签中显示该添加。
我也想在代码隐藏(* .cs)中做同样的添加
但代码隐藏仅在浏览器不支持 javascript 时执行。这意味着当浏览器支持javascript时,只有客户端javascript应该执行而不是服务器端代码
net 网站,我在 datagrid 控件中有文本框控件。
我想在 javascript 中添加 textchange 事件,我需要对 datagrid 中文本框内的值求和,并在网格外的标签中显示该添加。
我也想在代码隐藏(* .cs)中做同样的添加
但代码隐藏仅在浏览器不支持 javascript 时执行。这意味着当浏览器支持javascript时,只有客户端javascript应该执行而不是服务器端代码
您是否将文本框用作 EditItemTemplate?如果是这样,请在 EditItemTemplate 的文本框中添加 OnTextChanged 事件 -Textbox1_OnTextChanged
如下所示。
<asp:DataGrid ID="Grid" runat="server">
<Columns>
<asp:TemplateColumn>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" OnLoad="TextBox1_Load" OnTextChanged="Textbox1_OnTextChanged"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
然后,您可以总结服务器端的值。
此外,您必须在 EditItemTemplate 中为文本框添加 Load 事件(Textbox1_OnLoad),以绑定文本框的客户端事件,如下所示。
protected void TextBox1_Load(object sender, EventArgs e)
{
TextBox newTb = sender as TextBox;
if (newTb != null)
{
newTb.Attributes.Add("onChange", "sumup(this)");
}
}
在 Javascript 中,您可以处理 sumup 事件并使用 this 对象获取文本框的值并添加值。如果支持 javascript,则将计算总和,并且您应该在 sumup 函数结束时返回 false 以停止回发。
如果不支持javascript,则不会调用该方法并自动触发回发。
希望这能给你更好的主意。
问候,
拉克曼库马尔 C