我用在GridView的第6个单元格里绑定了一个按钮,当点击这个按钮时先给一个确认:“确定要通过二审吗?”
   大致代码如下:
         protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
             {
                  -----省略了部分代码----------
        ((Button)(e.Row.Cells[5].Controls[0])).Attributes.Add("onclick", "return confirm('确定要通过二审吗?')");
             }
   protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
          ----这部分是执行SQL语句的代码--------
}  运行后,当点击GridView的第6个单元格里的按钮时,弹出了确认的对话框,可是点击”确定“  确什么反应也没有,数据库里也没有任何变化,当把GridView1_RowDataBound()函数里的((Button)(e.Row.Cells[5].Controls[0])).Attributes.Add("onclick", "return confirm('确定要通过二审吗?')");这段代码注释掉后就一切正常了,不过也没有确认了,请问一下这个问题该怎样解决啊?这个确认是必须的!!

解决方案 »

  1.   

    前台gridview那个button里直接加个OnClientClick="javascript:return confirm('确定要通过二审吗?')"就可以了.
      

  2.   


      这样不行啊!我早就试过了,我在前台的gridview中是这样绑定按钮的: <asp:CommandField ButtonType="Button" HeaderText="通过|取消" SelectText="通过二审" ShowSelectButton="True">这样绑定是不能加OnClientClick事件的还有别的比较好的方法吗?谢谢了!
      

  3.   

    SelectedIndexChanging改成SelectedIndexChanged事件试下
      

  4.   

     <asp:TemplateField HeaderText="通过|取消">
                                <ItemTemplate>
                                    <asp:button  id="btn" runat="server" Text="通过二审" OnClientClick="javascript:return confirm('确定要通过二审吗?')" />
                                </ItemTemplate>
                            </asp:TemplateField>改成这不就行了么.效果一样的!条条大路通罗马嘛!
    要传参数就使用asp:linkbutton
      

  5.   

    弄错了,是本来就应该使用linkbutton~~~在rowCommand事件中处里.
      

  6.   

    linkbutton不是用来链接到另外一个页面的按钮吗?现在用不上链接,只是点击一下做一下处理:更新一下数据库中的一个字段值。如果这样用的话:
       <asp:TemplateField HeaderText="通过|取消"> 
                                <ItemTemplate> 
                                    <asp:button  id="btn" runat="server" Text="通过二审" OnClientClick="javascript:return confirm('确定要通过二审吗?')" /> 
                                </ItemTemplate> 
                            </asp:TemplateField> 
    在 GridView1_RowDataBound()事件中,这样用:
     if (e.Row.Cells[3].Text =="二审通过" || e.Row.Cells[3].Text =="已发布")
                {
                    ((Button)(e.Row.Cells[5].Controls[0])).Enabled = false;            }好像不行,提示无法强制转换为Button类型,哎!劳烦这位大哥了,我的C#基础实在是太差了,还有一个月左右就要交毕业设计了,可我刚开始做,前段时间看来2个月左右的ASP.NET,可是现在还是半生半熟的!!!
      

  7.   

    linkbutton不是用来链接到另外一个页面的按钮吗?现在用不上链接,只是点击一下做一下处理:更新一下数据库中的一个字段值。
    一样的!主要是用到linkbutton的两个属性而已
     <asp:TemplateField HeaderText="管理">
                                                                             <ItemTemplate>
                                                                                <asp:LinkButton ID="UpdateType" runat="server" Text="修改"
                                        CommandArgument='<%# Eval("Product_class_id").ToString() %>' CommandName="UpdateType" CausesValidation="False"></asp:LinkButton>
                                                                                <asp:LinkButton ID="DelType" runat="server" Text="删除"
                                        CommandArgument='<%# Eval("Product_class_id").ToString() %>' CommandName="DelType" CausesValidation="False" OnClientClick="javascript:return confirm('将会删除其所有子类,是否确认删除?')"></asp:LinkButton>
                                                                            </ItemTemplate>
                                                                        </asp:TemplateField>
    后台处理:
     /// <summary>
        /// 列表修改删除事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void gdType_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "UpdateType")
            {
                        }
            if (e.CommandName == "DelType")
            {
                       }
        }
    使用linkbutton是为了它的commandName和CommandArgument这两个属性!