logo资料库

利用js和showModalDialog实现aspxGridview弹出页面对话框进行查询并返回结果.doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
利用 js 和 showModalDialog 实现 aspxGridview 弹出页面对话框进行 查询并返回结果 本示例主要是实现了在弹出对话框中查询信息,然后将查询结果返回前一页面填充到相应的 文本框控件中,效果如下: 点击选择后,将结果返回并填充到相应的文本框中 页面 1 页面 2 要实现这个效果, 第一步:在页面 2 中有一个控件调用 js 弹出 showmodaldialog 对话框,我本来想用 devexpress 组件的 aspxButtonEdit 控件来实现,但发现在 js 中无法调用所以无法将结果传回,只好使用 了 input 控件,用了两个 input 控件实现类似 aspxButtonEdit 效果; 第二步,在 html 按钮控件的 onclick 中调用 js,代码如下:
ShowDialog()方法的代码如下: //显?示º?模¡ê态¬?对?话¡ã框¨°并¡é取¨?得Ì?返¤¦Ì回?值¦Ì赋3给?页°3面?上¦?的Ì?文?本À? 框¨° function ShowDialog() { //显?示º?模¡ê态¬?对?话¡ã框¨° var results = window.showModalDialog("CustomerQuery.aspx", "", "dialogWidth=600px;dialogHeight=350px;status=no;help=no;scroll=no"); //判D断?模¡ê态¬?对?话¡ã框¨°是º?否¤?有®D返¤¦Ì回?值¦Ì,ê?有®D则¨°绑㨮定¡§到Ì? 页°3面?相¨¤应®|文?本À?框¨°中D if (results != null) { document.all("txtCustomerName").value = results[0]; document.all("txtArea").value = results[1]; document.all("txtAddr").value = results[2]; document.all("txtContact").value = results[3]; document.all("txtTel").value = results[4]; document.all("TextBox1").value = results[5]; } }; 第三步,在弹出对话框页面中的选择按钮onclick事件中加入js方法,代码如下: 第四步,在页面上加入隐藏域,你想返回几个数据就加几个隐藏域,代码如下: 第五步,设置aspxGridview的相应属性,如下: 1、打开自带的选择复选框 2、设置要触发的js事件 grid_SelectionChanged的代码如下: //aspxGridview的Ì?选?择?行D事º?件t,ê?用®?于®¨²取¨?得Ì?字Á?段?的Ì?值¦Ì function grid_SelectionChanged(s, e) { s.GetSelectedFieldValues("customerName", GetSelectedFieldValuesCallback); s.GetSelectedFieldValues("area", GetSelectedFieldValuesCallback1); s.GetSelectedFieldValues("addr", GetSelectedFieldValuesCallback2); s.GetSelectedFieldValues("contact", GetSelectedFieldValuesCallback3); s.GetSelectedFieldValues("tel", GetSelectedFieldValuesCallback4); s.GetSelectedFieldValues("customerID", GetSelectedFieldValuesCallback5); } 上面代码是获取相应字段的值,这段代码在devexpress官方的demo中有的,这里我获取了六个字段的 值
上面GetSelectedFieldValuesCallback的代码如下,用于获取相应字段的值并赋给隐藏域: //将?取¨?得Ì?的Ì?字Á?段?值¦Ì赋3给?隐°t藏?域®¨° function GetSelectedFieldValuesCallback(values) { document.getElementById("Hidden1").value = values; } function GetSelectedFieldValuesCallback1(values) { document.getElementById("Hidden2").value = values; } function GetSelectedFieldValuesCallback2(values) { document.getElementById("Hidden3").value = values; } function GetSelectedFieldValuesCallback3(values) { document.getElementById("Hidden4").value = values; } function GetSelectedFieldValuesCallback4(values) { document.getElementById("Hidden5").value = values; } function GetSelectedFieldValuesCallback5(values) { document.getElementById("Hidden6").value = values; } 第六步,在选择按钮的 onclick事件中加入js访求btn_Click()代码如下: //按ã¡ä钮£¤的Ì?点Ì?击¡Â事º?件t,用®?于®¨²将?隐°t藏?域®¨°中D的Ì?值¦Ì返¤¦Ì回?到Ì?前 ¡ã一°?页°3面?并¡é关?闭À?本À?页°3面? function btn_Click() { //定¡§义°?数ºy组Á¨¦ var res = new Array(5); //将?隐°t藏?域®¨°中D值¦Ì赋3给?数ºy组Á¨¦ res[0] = document.getElementById("Hidden1").value; res[1] = document.getElementById("Hidden2").value; res[2] = document.getElementById("Hidden3").value; res[3] = document.getElementById("Hidden4").value; res[4] = document.getElementById("Hidden5").value; res[5] = document.getElementById("Hidden6").value; //返¤¦Ì回?数ºy组Á¨¦ window.returnValue = res; //关?闭À?当Ì¡À前¡ã页°3面? window.close(); } 经过上面几步基本就可以实现点击弹出查询对话框,选择相应的值并返回结果到上一页面, 试试吧!!!
分享到:
收藏