【后台】: 
protected void text_changed(object sender, EventArgs e)
        {
            TextBox tb = sender as TextBox;
            int row = ((GridViewRow)(tb).NamingContainer).RowIndex;
            (GridView1.Rows[row].FindControl("CommitButton") as Button).Attributes["OnClientClick"] = string.Format("javascript:return confirm('{0}{1} are you sure?')", "hello", tb.Text);        }
【前台】:
<asp:GridView ID="GridView1" runat="server"  CssClass="fixedheader"  AutoGenerateColumns="false"
            AllowPaging="True" OnPageIndexChanging="PageIndex_Changing"  >
                    <Columns>
                    <asp:BoundField  DataField="EName" HeaderText="Member"/>
                    <asp:BoundField DataField="AjustLeft" HeaderText="AjustLeft" />
                     
                    <asp:TemplateField HeaderText="     ">
                        <ItemTemplate>
                            <asp:TextBox ID="Days" runat="server"  OnTextChanged="text_changed" AutoPostBack="true" CommandArgument='<%#Eval("EName") %>'>
                            </asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>                    <asp:TemplateField HeaderText="     ">
                        <ItemTemplate>
                            <asp:Button ID="CommitButton"  runat="server"     Text="Commit"  OnClick="Commit_Click" CommandArgument='<%#Eval("EName") %>' />
                        </ItemTemplate>
                    </asp:TemplateField>
                    
                </Columns>
    </asp:GridView>
【症状】:text_changerd事件触发后,通过后台debug确认【(GridView1.Rows[row].FindControl("CommitButton") as Button).Attributes["OnClientClick"] 】已经被赋值,但在页面上点击对应的Commit没有跳出confirm对话框。

解决方案 »

  1.   

    ui上的事件就不要用服务器端来写了。一是调试麻烦。二是效率地下。这样的事情完全可以用js来完成。
      

  2.   

    一些debug结果:数据库连接部分无误
    改变第0行textbox的值后,row=0,无误。
      

  3.   

    试试这样吧:
    (GridView1.Rows[row].FindControl("CommitButton") as Button).Attributes["Click"] = "alert('Hello');";[align=center]*********************************************************** 
                      欢迎使用 CSDN 小秘书
                  http://blog.csdn.net/whowhen21
    ***********************************************************[/align]
      

  4.   

    谢谢大家,我把【(GridView1.Rows[row].FindControl("CommitButton") as Button).Attributes["OnClientClick"]】中的OnClientCLick改成了OnClick,问题已经解决了。可以结贴了