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

发布于 2024-10-08 10:27:13 字数 248 浏览 7 评论 0原文

NET 网站,我在数据网格控件内有文本框控件。

我想在 javascript 中添加 textchange 事件,我需要对数据网格中文本框中的值进行求和,并在网格外部的标签中显示该添加。

我也想在 codebehind(*.cs) 中做同样的添加,

但 codebehind 仅在浏览器不支持 javascript 时执行。这意味着当浏览器支持 javascript 时,只有客户端 javascript 应该执行,而不是服务器端代码

net website, i have textbox control inside datagrid control.

I would like to add textchange event in javascript where i need to sum the values inside textboxes in datagrid and show that addition in lable outside grid.

I would also like to do same addition in codebehind(*.cs)

But codebehind only execute when browser not support javascript. It means when browser support javascript only client side javascript should execute not server side code

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

金橙橙 2024-10-15 10:27:13

您是否使用文本框作为 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,则不会调用该方法并自动触发回发。

希望这能给你更好的主意。

此致,

Lakxman Kumar C

Are you using the textboxes as EditItemTemplate?
If so, within the textboxes in the EditItemTemplate add the OnTextChanged event - Textbox1_OnTextChanged as below.

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

You can then sumup the values in the serverside.

Also, you have to add the Load event(Textbox1_OnLoad) in the EditItemTemplate for the textbox to bind the clientside event of the text box as below.

 protected void TextBox1_Load(object sender, EventArgs e)
    {
        TextBox newTb = sender as TextBox;
        if (newTb != null)
        {
            newTb.Attributes.Add("onChange", "sumup(this)");
        }
    }

In Javascript, you can handle the sumup event and get the value of the textboxes using the this object and add the values. If the javascript is supported the sum will be calculated and you should return false at the end of the sumup function to stop the postback.

If the javascript is not supported, then the method will not be called and the postback will be automatically triggered.

Hope this should give you better idea.

Regards,

Lakxman Kumar C

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文