首先,不要告诉我直接用JS的confirm(),再看我的问题因为我是要在一个按钮里面对数据进行查询,如果数据存在,再询问是否覆盖,再根据选择进行相应的处理~~~网上查了很多,都是使用JS的confirm(),然后在按钮的OnClientClick里面调用,问题是,我的这个是要先查询数据再确定是否弹出这个对话框的~~请高手帮帮忙啊~~~

解决方案 »

  1.   


    <asp:DataGrid ID="DataGrid1" runat="server" OnItemDataBound="DataGrid1_ItemDataBound">
                                <asp:ButtonColumn CommandName="Delete" Text="删除"></asp:ButtonColumn>
                            </Columns>
                        </asp:DataGrid>protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
            if (e.Item.ItemType != ListItemType.Footer & e.Item.ItemType != ListItemType.Header)
            {
                e.Item.Cells[0].Attributes.Add("onclick", "javascript:return confirm('真的要删除编号为" + e.Item.Cells[0].Text + "的信息吗?');");
            }
        }
      

  2.   

    不行的
    如果在前台confirm的话就不进查询
    如果要查询的弹对话框 判断 再执行下面操作的话,这样也不现实后台调用前台弹出对话框,是所有后台操作执行完了再调用的
      

  3.   

    为什么不加对if else 呢?下载AjaxControlToolkit,里面有确认框的扩展,好像也行
      

  4.   

    有两种办法,一种是用ajax,比如用jquery写:
    $.ajax(
    ...
     success: function(data) {
       if (data.value == true && confirm("ok?") == true)
           //发另一个保存数据的ajax请求或者递交表单
    这里,后台的处理方法返回一个true或false的值,data就是返回值
    另一种不用ajax,稍微麻烦一点:
    先加一个隐藏元素:
    <asp:HiddenField id="savestate" />在服务端查询完数据后,加一句:
    savestate.Value = "processed";
    服务端处理完后刷新页面,触发客户端onload事件,在事件处理函数里,查询这个hiddenField的值:
    function onLoad()
    {
       var savestate = document.getElementById('savestate');
       if (savestate.value == 'processed')
       {
           savestate.value = ''; //先复位
            if (confirm("ok?") == true)
              //进行客户端的其他处理或者重新递交表单
            else
              //什么也不做
       }
       //否则什么也不做
    }
    这里用一个hiddenfield起到了标志的作用       
      

  5.   

    用AJAX加上confirm来实现,这是可以的。
      

  6.   

    恩了,用ajax配合confirm来显示
    ajax读取完数据后,confirm弹出
      

  7.   

    谢谢大家的回帖~~,因为我是需要先查询数据,然后根据选择再插入或更新数据,所以我想用ajax有点麻烦,因为我对ajax不是很熟悉,所以还需要再去研究,然后看到6楼的朋友说的方法,就尝试着去弄,结果弄成了,所以非常感谢~~~我这就去给分。其他提供ajax的方法的朋友,我虽然没有用到你们说的方法,不过准备有空的时候去研究一下,谢谢你们!