比较麻烦的子,父页面传值问题 我想将子页面GridView中选中的行的数据传给父页面对应的文本框中,有谁做过给点提示谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 和普通的传值没什么区别你在向gridview插入数据的过程中同时将数据放到(例如数组)在选中行的时候 取得行号 从而取得数据的下标这就可以将数组中的内容取出来以后你想干什么就干什么 gridview中的数据不是插入的,是查询的 加个模板列Button参数绑定主键ID,Button单击事件中注册JS脚本来处理子页面关闭并传值给父页面文本框 不是很难的可以在gridview的第一列加一个checkBox,或者直接就是一个触发动作的button,然后再根据操作的行,将行内的数据读出来,存在一个容器中(比较随便了),剩下的就简单了吧。。 要不直接就给Gridview的行添加单击的JS事件 楼主说是查询不是插入,怎么不是插入,查询后的数据插入GridView中.或者说绑定到GridView,子页面父页面是怎么回事?学习. 可参考http://www.blueshop.com.tw/board/show.asp?subcde=BRD20080426110908CDR&fumcde=FUM20041006161839LRJ 在子页中使用opener获得父页的引用然后你想怎么操作父页就使用opener对象 看一下这篇文章,介绍了如何在父窗口与弹出窗口之间进行传值。大体的思路是:父页面创建弹出窗口,并声明接受窗口返回值的变量<script type="text/javascript">..// 弹出子窗口,并接受返回值var retValue = window.showModalDialog('popuppageurl');..// 处理返回值if (null != retValue){ // retValue即选中行的主键数组,对该数组做进一步处理 for(var i=0;i<retValue.length;i++){ retValue[i]; }}</script>子窗口将选中的行的主键作为返回值传递给父页面,然后关闭自己<asp:GridView>..// 用JavaScript脚本,在每行的CheckBox发生变化时,把这一行的数据主键存入一个Js变量中或从中移除<asp:CheckBox onclick="fnSelectRow(this)"/>..</asp:GridView><script type="text/javascript">// 用该数组保存你选定的行的主键值var arrSelectedKeys = new Array();function fnSelectRow(source){ if(source.checked){ // 或取出数据行主键,可事先存入一个隐藏域之类的控件,然后读取并存入数组 // document.getElementById... } else{ // 将这一行主键从数组中移除 }}function fnFinalize(){ // 希望返回的值存入returnValue变量 window.returnValue = arrSelectedKeys; window.close();}</script> 我想将子页面GridView中选中的行的数据传给父页面对应的文本框中,有谁做过给点提示谢谢==子页面的GridView RowDataBound事件中注册客户端脚本,类似10楼 用js写方法,在gridview中加入脚本调用,利用url传给子页面不就ok咯 在后台写行啊,在后台给单选项加个CheckedChanged事件就行啊 protected void Button1_ServerClick(object sender, EventArgs e) { if (Request.Params["YBBM"] == null) { Response.Write("<script>alert('请先选择药品'); location.href='ypdz.aspx';</script>"); return; } string ybbm = Request.Params["YBBM"].ToString().Trim(); string sql = "select * from ypdz where ybbm='" + ybbm + "'"; try { Database db = new Database(); DataSet ds = new DataSet(); ds = db.GetDataSet(sql); string dd = ds.Tables["MyData"].Rows[0]["ybbm"].ToString().Trim(); hdYBBM.Value = ds.Tables["MyData"].Rows[0]["ybbm"].ToString().Trim(); hdYBDJ.Value = ds.Tables["MyData"].Rows[0]["ypdj"].ToString().Trim(); hdYBLX.Value = ds.Tables["MyData"].Rows[0]["yblx"].ToString().Trim(); hdYBMC.Value = ds.Tables["MyData"].Rows[0]["ybmc"].ToString().Trim(); hdYBYJ.Value = ds.Tables["MyData"].Rows[0]["ybyj"].ToString().Trim(); hdZFBL.Value = ds.Tables["MyData"].Rows[0]["n_zfbl"].ToString().Trim(); } catch (Exception ex) { Response.Write(ex.ToString()); } Response.Write("<script>window.opener.document.getElementById( 'YBBM').value=document.getElementById('hdYBBM').value;</script>"); Response.Write("<script>window.close();</script>"); }我这这么写的就是不行啊 function checkSelectCount(gvTableName) //gridview的ID{ var tmp= { count:0, ID:undefined //需要几个值在这里加 } try { var gvTable = document.getElementsByName(gvTableName); var gvTr=gvTable[0].getElementsByTagName("tr"); for(var i=0; i<gvTr.length; i++) { var gvTd=gvTr[i].getElementsByTagName("td"); if(gvTd.length!=0) { var gvCheckBox=gvTd[0].getElementsByTagName("INPUT")[0]; if(gvCheckBox!=undefined) { if(gvCheckBox.checked==true)//选中的列 { tmp.count++; tmp.ID=gvTd[1].innerHTML;//1是gridview第二列,取选中的第二列的值 } } } } } catch(err){ } return tmp;}gridview第一列为复选框,checkbox。在提交按钮里添加一个js,调用上面这个方法,就可以得到你想要的值,你就可以在js里跳转页面传你想传的值啦。 楼主的问题应该是在B页面选择中信息后,点提交后,B页面没有了,出现A页面,在文本框中显示选中的信息。其实有一个显示的方法。楼主要传的其实就是一个值。你在B页面可以取到这个选中的值吧。用redirect跳转到A,在后面加一个参数就行了a.aspx?values="你的值";在A里面写if(Request.Querything("values")!=""){ this.TextBox1.text = Request.Querystring("values").tostring();} Asp.Net中文本框的事件 请问:如何将存在cache里的LIST<Guid>值一个一个读出? .NET 三层架构项目代码实例 日记管理 gridview自动生成的列格式化的问题! asp.net 2.0 配置 C#.net里换行连接符是什么? 求b/s手写签名解决方案,最好不用花钱的 我朋友给我写了套程序,但是美化没做,有兴趣的人帮我做做! File Field 事件如何响应 做过OA系统的兄弟帮帮忙 the status code returned from the server was:404 创建控件时出错 未能对属性Text设置"123"
你在向gridview插入数据的过程中同时将数据放到(例如数组)
在选中行的时候 取得行号 从而取得数据的下标
这就可以将数组中的内容取出来
以后你想干什么就干什么
Button单击事件中注册JS脚本来
处理子页面关闭并传值给父页面文本框
可以在gridview的第一列加一个checkBox,或者直接就是一个触发动作的button,然后再根据操作的行,将行内的数据读出来,存在一个容器中(比较随便了),剩下的就简单了吧。。
或者说绑定到GridView,子页面父页面是怎么回事?学习.
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20080426110908CDR&fumcde=FUM20041006161839LRJ
..
// 弹出子窗口,并接受返回值
var retValue = window.showModalDialog('popuppageurl');
..
// 处理返回值
if (null != retValue){
// retValue即选中行的主键数组,对该数组做进一步处理
for(var i=0;i<retValue.length;i++){
retValue[i];
}
}</script>子窗口将选中的行的主键作为返回值传递给父页面,然后关闭自己<asp:GridView>..
// 用JavaScript脚本,在每行的CheckBox发生变化时,把这一行的数据主键存入一个Js变量中或从中移除
<asp:CheckBox onclick="fnSelectRow(this)"/>
..</asp:GridView>
<script type="text/javascript">// 用该数组保存你选定的行的主键值
var arrSelectedKeys = new Array();function fnSelectRow(source){
if(source.checked){
// 或取出数据行主键,可事先存入一个隐藏域之类的控件,然后读取并存入数组
// document.getElementById...
}
else{
// 将这一行主键从数组中移除
}
}
function fnFinalize(){
// 希望返回的值存入returnValue变量
window.returnValue = arrSelectedKeys;
window.close();
}
</script>
==
子页面的GridView RowDataBound事件中注册客户端脚本,类似10楼
protected void Button1_ServerClick(object sender, EventArgs e)
{
if (Request.Params["YBBM"] == null)
{
Response.Write("<script>alert('请先选择药品'); location.href='ypdz.aspx';</script>");
return;
}
string ybbm = Request.Params["YBBM"].ToString().Trim();
string sql = "select * from ypdz where ybbm='" + ybbm + "'";
try
{
Database db = new Database();
DataSet ds = new DataSet();
ds = db.GetDataSet(sql);
string dd = ds.Tables["MyData"].Rows[0]["ybbm"].ToString().Trim();
hdYBBM.Value = ds.Tables["MyData"].Rows[0]["ybbm"].ToString().Trim();
hdYBDJ.Value = ds.Tables["MyData"].Rows[0]["ypdj"].ToString().Trim();
hdYBLX.Value = ds.Tables["MyData"].Rows[0]["yblx"].ToString().Trim();
hdYBMC.Value = ds.Tables["MyData"].Rows[0]["ybmc"].ToString().Trim();
hdYBYJ.Value = ds.Tables["MyData"].Rows[0]["ybyj"].ToString().Trim();
hdZFBL.Value = ds.Tables["MyData"].Rows[0]["n_zfbl"].ToString().Trim();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
Response.Write("<script>window.opener.document.getElementById( 'YBBM').value=document.getElementById('hdYBBM').value;</script>");
Response.Write("<script>window.close();</script>");
}
我这这么写的就是不行啊
{
var tmp=
{
count:0,
ID:undefined //需要几个值在这里加
}
try
{
var gvTable = document.getElementsByName(gvTableName);
var gvTr=gvTable[0].getElementsByTagName("tr");
for(var i=0; i<gvTr.length; i++)
{
var gvTd=gvTr[i].getElementsByTagName("td");
if(gvTd.length!=0)
{
var gvCheckBox=gvTd[0].getElementsByTagName("INPUT")[0];
if(gvCheckBox!=undefined)
{
if(gvCheckBox.checked==true)//选中的列
{
tmp.count++;
tmp.ID=gvTd[1].innerHTML;//1是gridview第二列,取选中的第二列的值
}
}
}
}
}
catch(err){ }
return tmp;
}gridview第一列为复选框,checkbox。
在提交按钮里添加一个js,调用上面这个方法,就可以得到你想要的值,你就可以在js里跳转页面传你想传的值啦。
其实有一个显示的方法。楼主要传的其实就是一个值。
你在B页面可以取到这个选中的值吧。用redirect跳转到A,在后面加一个参数就行了a.aspx?values="你的值";
在A里面写
if(Request.Querything("values")!="")
{
this.TextBox1.text = Request.Querystring("values").tostring();
}