问题原因: 嵌套了一个
A界面:
<iframe src="../../VideoAbout.aspx"></iframe>VideoAbout.aspx界面: 绑定了数据源,并且是动态的绑定,会有值传进来
if (Request.QueryString["videoGuid"] == null)
{
绑定1 //没有值传进来的时候
}
else
{
绑定2 //有值传进来之后
}
问题来了: VideoAbout.aspx界面的东西 我绑定2 完了之后,打开A界面 他就又会执行一遍绑定 并且会一直绑定1 因为没有值传进去, 不知说的明白了没有,大致就是iframe加载的时候还会自动的绑定一遍,会把我原来绑定的给覆盖掉 我现在每次都绑定的是同一个内容,不知道怎么解决,在线等,求解决!
A界面:
<iframe src="../../VideoAbout.aspx"></iframe>VideoAbout.aspx界面: 绑定了数据源,并且是动态的绑定,会有值传进来
if (Request.QueryString["videoGuid"] == null)
{
绑定1 //没有值传进来的时候
}
else
{
绑定2 //有值传进来之后
}
问题来了: VideoAbout.aspx界面的东西 我绑定2 完了之后,打开A界面 他就又会执行一遍绑定 并且会一直绑定1 因为没有值传进去, 不知说的明白了没有,大致就是iframe加载的时候还会自动的绑定一遍,会把我原来绑定的给覆盖掉 我现在每次都绑定的是同一个内容,不知道怎么解决,在线等,求解决!
这个值就可以保存,就不会执行绑定1
if (Request.QueryString["videoGuid"] == null && ViewState["绑定2"]==null )
{
绑定1 //没有值传进来的时候
ViewState["绑定2"]=null;
}
else
{
绑定2 //有值传进来之后
ViewState["绑定2"]=true;
}
这样子的话 ViewState永远都是null
因为 这个VideoAbout.aspx.cs 它是执行了2遍绑定 第一遍是我传值进去的时候 把这个ViewState的值改成了True 第二遍 VideoAbout.aspx.cs 他又从头开始执行了一下,ViewState又变成了null 还是只绑定1 除非我把ViewState用Application记录下来 或许可以 不过总感觉不是办法。。
<a target="_top" href="VideoAbout.aspx?videoGuid=<%#Eval("videoGuid") %>" class="link2">
你的<a target="_top" href="VideoAbout.aspx?videoGuid=<%#Eval("videoGuid") %>" class="link2">,和<iframe>是在同一页面?你为什么要让绑定执行2遍?第一遍ViewState已经有值,第二遍怎么可能有进入Null分支?Application是跨用户的,你想让所有用户共享吗?当然不是办法!
我细细的说 现在总共有3个界面 1.一个是 嵌套了iframe的界面(不是aspx文件,无法修改,无法实现绑定,无法接收值)
2.一个是 VideoAbout.aspx 绑定的界面
3.一个是传值到VideoAbout.aspx的界面我点击了3这个界面的的某个按钮 触发 传值到VideoAbout.aspx 实现了绑定2 然后再重定向到 1(嵌套了iframe这个界面) , 在 1 这个界面中,因为有iframe 它就又会执行一遍iframe里的绑定 这时候的绑定 肯定是没有值传进去的 所以就一直绑定默认的那个
把3也放在1里啊.
3传到iframe中的2, 这样2就会变了.
你的ViewState 是用什么记录的呢? 如果在页面2中记录的话 会被刷掉成为默认值,不知是用什么来记录这个的?
我的3貌似是在1里面的 用了另外一个Iframe嵌套的
<a target="_top" href="VideoAbout.aspx?videoGuid=<%#Eval("videoGuid") %>" class="link2">
我这边传的页面 是传给1 还是2?
3传到iframe中的2, 这样2就会变了.
定义 string ViewState="";
这样吗?
后面在根据判断做出不同的修改?
直接target到 2所在的iframe.问题不就解决了?
但能感觉得出来你是人为搞得很复杂]完全可以把这个结构全部推翻,重新用一种精干,明晰的加构来达到同样的目的.
譬如大家说的cookie传值,或者用javascript在客户端来取值并传值.甚至用上ajax