net网站,我在datagrid控件中有文本框控件。
我想在javascript中添加textchange事件,我需要在datagrid中对textbox中的值求和,并在lable外部网格中显示该添加。
我还想在codebehind(* .cs)中添加相同的内容
但是,当浏览器不支持javascript时,代码隐藏才会执行。这意味着当浏览器支持javascript时,只有客户端javascript应该执行不是服务器端代码
答案 0 :(得分:0)
您是否将文本框用作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)以绑定文本框的clientside事件,如下所示。
protected void TextBox1_Load(object sender, EventArgs e)
{
TextBox newTb = sender as TextBox;
if (newTb != null)
{
newTb.Attributes.Add("onChange", "sumup(this)");
}
}
在Javascript中,您可以使用此对象处理sumup事件并获取文本框的值并添加值。如果支持javascript,则将计算总和,并且您应该在总结函数结束时返回false以停止回发。
如果不支持javascript,则不会调用该方法,并且会自动触发回发。
希望这会给你更好的想法。
此致
Lakxman Kumar C