如何在javascript和代码后面编写和执行asp.net textchange事件处理程序?

时间:2010-12-22 05:31:22

标签: javascript asp.net code-behind textchanged

net网站,我在datagrid控件中有文本框控件。

我想在javascript中添加textchange事件,我需要在datagrid中对textbox中的值求和,并在lable外部网格中显示该添加。

我还想在codebehind(* .cs)中添加相同的内容

但是,当浏览器不支持javascript时,代码隐藏才会执行。这意味着当浏览器支持javascript时,只有客户端javascript应该执行不是服务器端代码

1 个答案:

答案 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