怎么在服务器端弹出网页确认取消对话框并获取选择? 首先,不要告诉我直接用JS的confirm(),再看我的问题因为我是要在一个按钮里面对数据进行查询,如果数据存在,再询问是否覆盖,再根据选择进行相应的处理~~~网上查了很多,都是使用JS的confirm(),然后在按钮的OnClientClick里面调用,问题是,我的这个是要先查询数据再确定是否弹出这个对话框的~~请高手帮帮忙啊~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <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 + "的信息吗?');"); } } 不行的如果在前台confirm的话就不进查询如果要查询的弹对话框 判断 再执行下面操作的话,这样也不现实后台调用前台弹出对话框,是所有后台操作执行完了再调用的 为什么不加对if else 呢?下载AjaxControlToolkit,里面有确认框的扩展,好像也行 有两种办法,一种是用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起到了标志的作用 用AJAX加上confirm来实现,这是可以的。 恩了,用ajax配合confirm来显示ajax读取完数据后,confirm弹出 谢谢大家的回帖~~,因为我是需要先查询数据,然后根据选择再插入或更新数据,所以我想用ajax有点麻烦,因为我对ajax不是很熟悉,所以还需要再去研究,然后看到6楼的朋友说的方法,就尝试着去弄,结果弄成了,所以非常感谢~~~我这就去给分。其他提供ajax的方法的朋友,我虽然没有用到你们说的方法,不过准备有空的时候去研究一下,谢谢你们! 保存编辑之前的值 gridview 更新取消在两行 数据库显示问题 updatepanel ADO.net 批处理删除 DirectoryInfo类怎么过滤文件 程序速度很慢 改变控件属性的小问题 求一正则表达式 关于一个传值的问题(求大神啊) 下载打开时报错 100分请问:如何实现GridView数据源的动态绑定?
<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 + "的信息吗?');");
}
}
如果在前台confirm的话就不进查询
如果要查询的弹对话框 判断 再执行下面操作的话,这样也不现实后台调用前台弹出对话框,是所有后台操作执行完了再调用的
$.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起到了标志的作用
ajax读取完数据后,confirm弹出