请问下:
在girdview中选中一行,弹出对话框的问题。
页面有个textbox,有值则弹出的提示框内容是textbox值加选中行的某个值;无值则弹出的是绑定值。
对话框提示放page_load 吧,第一次点击弹出的框,没值,都是空串。接下来,点button都正常。给gridview每行一button,在RowDataBound写,可弹出的提示值,只能是绑定值,都与textbox无关了。
我放到button里写
ClientScript.RegisterStartupScript(this.GetType(), DateTime.Now.ToString(), "confirm('车牌号:" + dlcp + " 单号为:" +dh + "的信息发送给" + iphone + "吗?');", true);
这句代码后面的操作都执行完了,才弹出对话框来,顺序都倒过来了??
请问,怎么解决呀??
楼主应该仔细理解一下客户端执行和服务器端执行的区别。
之所以执行顺序倒过来是因为--ClientScript.RegisterStartupScript(this.GetType(), DateTime.Now.ToString(), "confirm('车牌号:" + dlcp + " 单号为:" +dh + "的信息发送给" + iphone + "吗?');", true); 这句是在点击按钮后传回服务器端执行的,它一次会把button中的所有事件都执行完,执行完成后它把注册了客户端事件的页面再传回客户端,客户端再根据脚本执行confirm。
之所以你之前放在RowDataBound弹出的值与textbox无关,有可能是你写的绑定语句的问题,获取textbox的值要用:document.getElementById("TextBoxID").innerText。
给楼主的建议是:绑定时只绑定一个客户端的一个方法。触发方法时把你选中行的值传过去,然后在那个方法里计算和值,然后弹出对话框。这样思路清晰一些,一会客户端一会服务器端容易搞混。
直接在button 的 OnClientClick 事件 写脚本,把要提示的信息,绑定的时候就处理好,然后传入 脚本事件。
如果返回true 那么执行 button的 OnClick事件。