0

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

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

我也想在代码隐藏(* .cs)中做同样的添加

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

4

1 回答 1

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),以绑定文本框的客户端事件,如下所示。

 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

于 2010-12-22T06:24:38.973 回答