2010-12-22 48 views
0

网站,我有datagrid控件内的文本框控件。如何在javascript和后面的代码中编写和执行asp.net textchange事件处理程序?

我想在javascript中添加textchange事件,其中我需要总结datagrid中的文本框中的值,并显示添加在标签外的网格。

我也想这样做的代码隐藏相同的另外(* CS)

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

回答

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事件并使用此对象获取文本框的值并添加值。如果支持javascript,则会计算总和,并且应该在sumup函数结束时返回false以停止回发。

如果javascript不被支持,那么该方法将不会被调用,回发将被自动触发。

希望这应该给你更好的主意。

问候,

Lakxman库马尔Ç

相关问题