关于在Asp.net中子页面的GridView某行传值给父页面GridView中某行的问题

问题描述

自己做了一个测试,在父页面有一个GridView,有一个“插入新行”的按钮,当点击按钮将会显示GridView的脚注Footer,通过脚注来增加一行,在字段列“产品小类名称”里有一个弹出子页面的按钮,当点击这个按钮就会弹出子页面产品小类名称的GridView,当点击GridView某行,就把数据传递到父页面的GridView的脚注行。我在父页面用的是window.open(),而不是showModalDialog()(不需要用模态窗体),但当我点击双击子页面行,父页面GridView却没任何反应,请各位大虾指点指点,不胜感激。父页面及后台代码如下:下面是子页面及代码:

解决方案

解决方案二:
还是js窗体间传值问题。子页面插入的数据,读取到js的自定义对象中。然后传递给父页面,父页面运行一个添加新行的方法窗体间传值的简单实例:
解决方案三:
参考:
解决方案四:
引用1楼hanjun0612的回复:

还是js窗体间传值问题。子页面插入的数据,读取到js的自定义对象中。然后传递给父页面,父页面运行一个添加新行的方法窗体间传值的简单实例:

我用的是window.open(),不是showModalDialog(),如果只是传值给父页面的的文本框是没问题的,但就是传值给GridView的行和列就不行,不知道父页面的GridView的模板列用什么方法来接收子页面传过来的值,很郁闷。
解决方案五:
文本框可以,如果整个隐藏域中转存储下呢
解决方案六:
引用3楼zzszzhjxxxx的回复:

窗体间传值的简单实例:

我用的是window.open(),不是showModalDialog(),如果只是传值给父页面的的文本框是没问题的,但就是传值给GridView的行和列就不行,不知道父页面的GridView的模板列用什么方法来接收子页面传过来的值,很郁闷。

传值给父页面的gridview,需要调用自己写的方法来拼接gridview所产生的table,把数据拼接上去
解决方案七:
引用5楼hanjun0612的回复:

Quote: 引用3楼zzszzhjxxxx的回复:
窗体间传值的简单实例:

我用的是window.open(),不是showModalDialog(),如果只是传值给父页面的的文本框是没问题的,但就是传值给GridView的行和列就不行,不知道父页面的GridView的模板列用什么方法来接收子页面传过来的值,很郁闷。

传值给父页面的gridview,需要调用自己写的方法来拼接gridview所产生的table,把数据拼接上去

我在点了“新增行”或者是点击“编辑”里面会出现EditItemTemplate或是FooterTemplate里的TextBox1文本框,但我在浏览器里生成的HTML文件里却找不到它们。后来我直接把showFooter属性设置为True,在HTML就能找到TextBox1的标记,然后再子页面赋值就行。那现在怎样才能我点击新增或是编辑使TextBox1在生成的HTML里有显示标签呢?
解决方案八:
引用6楼zzszzhjxxxx的回复:

Quote: 引用5楼hanjun0612的回复:
Quote: 引用3楼zzszzhjxxxx的回复:
窗体间传值的简单实例:

我用的是window.open(),不是showModalDialog(),如果只是传值给父页面的的文本框是没问题的,但就是传值给GridView的行和列就不行,不知道父页面的GridView的模板列用什么方法来接收子页面传过来的值,很郁闷。

传值给父页面的gridview,需要调用自己写的方法来拼接gridview所产生的table,把数据拼接上去

我在点了“新增行”或者是点击“编辑”里面会出现EditItemTemplate或是FooterTemplate里的TextBox1文本框,但我在浏览器里生成的HTML文件里却找不到它们。后来我直接把showFooter属性设置为True,在HTML就能找到TextBox1的标记,然后再子页面赋值就行。那现在怎样才能我点击新增或是编辑使TextBox1在生成的HTML里有显示标签呢?

你的前端代码贴出来看看
解决方案九:
引用7楼hanjun0612的回复:

Quote: 引用6楼zzszzhjxxxx的回复:
Quote: 引用5楼hanjun0612的回复:
Quote: 引用3楼zzszzhjxxxx的回复:
窗体间传值的简单实例:

我用的是window.open(),不是showModalDialog(),如果只是传值给父页面的的文本框是没问题的,但就是传值给GridView的行和列就不行,不知道父页面的GridView的模板列用什么方法来接收子页面传过来的值,很郁闷。

传值给父页面的gridview,需要调用自己写的方法来拼接gridview所产生的table,把数据拼接上去

我在点了“新增行”或者是点击“编辑”里面会出现EditItemTemplate或是FooterTemplate里的TextBox1文本框,但我在浏览器里生成的HTML文件里却找不到它们。后来我直接把showFooter属性设置为True,在HTML就能找到TextBox1的标记,然后再子页面赋值就行。那现在怎样才能我点击新增或是编辑使TextBox1在生成的HTML里有显示标签呢?

你的前端代码贴出来看看

这个问题是我在页面加了scriptmanager,所以没有刷新造成的。但现在又碰到一个问题,我在点击GridView某行时赋值给文本框,如果我用e.Row.Attributes.Add("onclick","document.getElementById('txtBigClassID').value='"+e.Row.Cells[0].Text+"';");是可以传值给文本框,但我用e.Row.Attributes.Add("onDblClick","window.opener.document.getElementById('<%=TextBox1.ClientID%>').value='"+e.Row.Cells[0].Text+"';这个却没有任何反应,不知道怎么回事,本来这两个语句应该是一样的。
解决方案十:
引用8楼zzszzhjxxxx的回复:

Quote: 引用7楼hanjun0612的回复:
Quote: 引用6楼zzszzhjxxxx的回复:
Quote: 引用5楼hanjun0612的回复:
Quote: 引用3楼zzszzhjxxxx的回复:
窗体间传值的简单实例:

我用的是window.open(),不是showModalDialog(),如果只是传值给父页面的的文本框是没问题的,但就是传值给GridView的行和列就不行,不知道父页面的GridView的模板列用什么方法来接收子页面传过来的值,很郁闷。

传值给父页面的gridview,需要调用自己写的方法来拼接gridview所产生的table,把数据拼接上去

我在点了“新增行”或者是点击“编辑”里面会出现EditItemTemplate或是FooterTemplate里的TextBox1文本框,但我在浏览器里生成的HTML文件里却找不到它们。后来我直接把showFooter属性设置为True,在HTML就能找到TextBox1的标记,然后再子页面赋值就行。那现在怎样才能我点击新增或是编辑使TextBox1在生成的HTML里有显示标签呢?

你的前端代码贴出来看看

这个问题是我在页面加了scriptmanager,所以没有刷新造成的。但现在又碰到一个问题,我在点击GridView某行时赋值给文本框,如果我用e.Row.Attributes.Add("onclick","document.getElementById('txtBigClassID').value='"+e.Row.Cells[0].Text+"';");是可以传值给文本框,但我用e.Row.Attributes.Add("onDblClick","window.opener.document.getElementById('<%=TextBox1.ClientID%>').value='"+e.Row.Cells[0].Text+"';这个却没有任何反应,不知道怎么回事,本来这两个语句应该是一样的。

就是如果我加了ClientID的话,就没任何反应。
解决方案十一:
引用9楼zzszzhjxxxx的回复:

这个问题是我在页面加了scriptmanager,所以没有刷新造成的。但现在又碰到一个问题,我在点击GridView某行时赋值给文本框,如果我用e.Row.Attributes.Add("onclick","document.getElementById('txtBigClassID').value='"+e.Row.Cells[0].Text+"';");是可以传值给文本框,但我用e.Row.Attributes.Add("onDblClick","window.opener.document.getElementById('<%=TextBox1.ClientID%>').value='"+e.Row.Cells[0].Text+"';这个却没有任何反应,不知道怎么回事,本来这两个语句应该是一样的。就是如果我加了ClientID的话,就没任何反应。

你需要的是父页面的控件的ClientID,怎么可能从子页面去计算ClientID呢?实际上,你可以将控件的ClientID作为子页面的QueryString参数(url参数)传过来。也就是你的原始代码中的url参数,在Attributes.Add(.....)代码中使用时,应该在url字符串后边再加上url参数。
解决方案十二:
引用10楼sp1234的回复:

Quote: 引用9楼zzszzhjxxxx的回复:
这个问题是我在页面加了scriptmanager,所以没有刷新造成的。但现在又碰到一个问题,我在点击GridView某行时赋值给文本框,如果我用e.Row.Attributes.Add("onclick","document.getElementById('txtBigClassID').value='"+e.Row.Cells[0].Text+"';");是可以传值给文本框,但我用e.Row.Attributes.Add("onDblClick","window.opener.document.getElementById('<%=TextBox1.ClientID%>').value='"+e.Row.Cells[0].Text+"';这个却没有任何反应,不知道怎么回事,本来这两个语句应该是一样的。就是如果我加了ClientID的话,就没任何反应。

你需要的是父页面的控件的ClientID,怎么可能从子页面去计算ClientID呢?实际上,你可以将控件的ClientID作为子页面的QueryString参数(url参数)传过来。也就是你的原始代码中的url参数,在Attributes.Add(.....)代码中使用时,应该在url字符串后边再加上url参数。

引用10楼sp1234的回复:

Quote: 引用9楼zzszzhjxxxx的回复:
这个问题是我在页面加了scriptmanager,所以没有刷新造成的。但现在又碰到一个问题,我在点击GridView某行时赋值给文本框,如果我用e.Row.Attributes.Add("onclick","document.getElementById('txtBigClassID').value='"+e.Row.Cells[0].Text+"';");是可以传值给文本框,但我用e.Row.Attributes.Add("onDblClick","window.opener.document.getElementById('<%=TextBox1.ClientID%>').value='"+e.Row.Cells[0].Text+"';这个却没有任何反应,不知道怎么回事,本来这两个语句应该是一样的。就是如果我加了ClientID的话,就没任何反应。

你需要的是父页面的控件的ClientID,怎么可能从子页面去计算ClientID呢?实际上,你可以将控件的ClientID作为子页面的QueryString参数(url参数)传过来。也就是你的原始代码中的url参数,在Attributes.Add(.....)代码中使用时,应该在url字符串后边再加上url参数。

我现在是放在一个页面测试也是这样的,我在txtBigCassID和GridView在同一个页面,我直接用getElementById('txtBigClassID').value就可以传值到txtBigClass,但当后面加了ClientID就没任何反应。
解决方案十三:
谢谢“以专业开发人员为伍”,根据你的方法现在能传值到父页面的的GridView的行。
解决方案十四:
楼主能否把完整代码发给伙,学习学习。703292478@qq.com

时间: 2024-09-19 09:55:12

关于在Asp.net中子页面的GridView某行传值给父页面GridView中某行的问题的相关文章

url-给一个页面的URL 如何通过JQUERY获取 这个页面中的最大的一张图片

问题描述 给一个页面的URL 如何通过JQUERY获取 这个页面中的最大的一张图片 给一个页面的URL 如何通过JQUERY获取 这个页面中的最大的一张图片 1.需要先通过JS加载出这个URL获取来的页面的HTML,存放在一个对象中? 2.再从这个对象中取出其中所有的图片,再做比较 首先第一步怎么实现? 然后第二步 解决方案 你的页面跨域没有?是当前浏览器加载的页面还是你自己做了个页面获取url地址指定的内容? 如果是url指定的跨域没有?跨域了不是客户端js能搞得了,跨域获取不到内容. 没跨域

javascript-Android WebView中子窗口iframe的js方法无法获取父窗口window中的js变量?

问题描述 Android WebView中子窗口iframe的js方法无法获取父窗口window中的js变量? 如题,今天写了一个Html页面,包含Js方法若干,其中包括建立全局的js变量.即window.var 另外,Html中包含一个iframe子窗体,子窗体中的Js方法需要调用父窗体Js方法中所建立的那个全局变量 用PC端的浏览器打开主页,iframe可以获取到父窗体中的JS变量,但是用android的WebView打开这个Html页面,却始终无法获取到 尝试了很多种方式都不行,既然PC端

我记和asp.net webforms中可以用mypage.aspx和mypage.mobile.aspx,用户浏览时,可根据浏览器,自动呈现页面的

问题描述 我记和asp.netwebforms(不是MVC)中,可以用mypage.aspx和mypage.mobile.aspx,用户浏览时,可根据浏览器是否是手机还是PC,自动呈现页面的,同时在地址上,页面网址都是mypage.aspx.我以前有见过,但是不知道为什么,在vs2012中,无法实现这个功能了.请各位指点一下. 解决方案 解决方案二:mvc4到是有这个功能,老的这种到从没试过.解决方案三:AnnouncingreleaseofASP.NETandWebTools2012.2Upd

一个页面中a标签的target怎么指向另一个页面的frame的name

问题描述 一个页面中a标签的target怎么指向另一个页面的frame的name 我做一个页面是文章的列表,另一个页面是显示文章,因为我的文章是直接pdf格式显示 ,总是全屏,所有我想把它放在一个frame框架中,在同一页面中的已经可以实现,现在 在一个页面链接到那个frame页面我就不会做了,求指教 解决方案 第一个页面把文件名通过url参数传给第二个页面,第二个页面按照你已经会的方式(同一个页面的frame)做. 解决方案二: 页面放到frameset里面,使用a的target指向frame

图片-post之前怎样获取将要打开页面的VIEWSTATE

问题描述 post之前怎样获取将要打开页面的VIEWSTATE 我要抓取方正教务系统中的课程表,但是要凭借VIEWSTATE才能post到对应班级的课程表页面, 每个班级课程表的VIEWSTATE不一样,有什么方法获取VIEWSTATE

MySQL中的行级锁、表级锁、页级锁_Mysql

在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足. 在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引擎).表级锁(MYISAM引擎)和页级锁(BDB引擎 ). 一.行级锁 行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁.行级锁能大大减少数据库操作的冲突.其加锁粒度最小,但加锁的开销也最大.行级锁分为共享锁 和 排他锁. 特点 开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发度也

asp.net-关于不同页面间将session的值传到另一个页面的GridView中

问题描述 关于不同页面间将session的值传到另一个页面的GridView中 搜索按钮在这个页面production.aspx protected void searchbtn_Click(object sender, EventArgs e) { if (searchtb.Text == "") { Response.Write("alert('请输入查找的内容!');location.href='production.aspx'"); } else { Ses

asp.net怎么实现 在a页面中 通过button 在b页面的iframe里 打开c页面?

问题描述 asp.net怎么实现 在a页面中 通过button 在b页面的iframe里 打开c页面? 我现在首页上有个上传的按钮,如果没登录,点击会提醒登录,如果登陆了,就跳到会员中心的上传界面,会员中心是左侧显示菜单,右侧iframe显示界面,上传本身就是菜单中的一项,不知道怎么实现这个跳转,求助求助~~ 解决方案 <inpupt type="text" onclick="<%=Session["isonline"]==null?"

怎么将gridview中所选择的内容的值具体显示到另一个页面的textbox或者table中

问题描述 怎么将gridview中所选择的内容的值具体显示到另一个页面的textbox或者table中 解决方案 这就是页面之间传值啊,点击选择的时候触发一个事件,存在session里或者通过跳转的get方式传值.