首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

A页面有一个ImageButton,其ImageUrl为B页面,如何从B页面获得A页面的控件?

2013-03-13 
A页面有一个ImageButton,其ImageUrl为B页面,怎么从B页面获得A页面的控件???A页面有一个ImageButton,其Imag

A页面有一个ImageButton,其ImageUrl为B页面,怎么从B页面获得A页面的控件???
A页面有一个ImageButton,其ImageUrl为B页面,怎么从B页面获得A页面的控件???
我通过调试发现B页面的Page.PreviousPage和Page.Parent都为null,那我要怎么获得A页面某个控件的控件值?
急,谢谢指点!!!

//-------------A.aspx------------------//
<script type="text/javascript">
    function getBmp() {
        document.getElementById("tbHid").Text = "/9j/4A..."; //文本内容为JPG图片的base64字符串,后面的部分省略了
        document.getElementById("imgBmp").src = "B.aspx";
    }
}
</script>
<asp:TextBox id="tbHid" runat="server" style="display:none" />
<asp:ImageButton runat="server" ID="imgBmp" onclientclick="getBmp()" ImageUrl="a.gif"/>

//-------------B.aspx.cs------------------//
protected void Page_Load(object sender, EventArgs e)
{   
//TextBox tbox = (TextBox)Page.PreviousPage.FindControl("tbHid");
    TextBox tbox = (TextBox)Page.Parent.Parent.FindControl("tbHid");
    string picStr = tbox.Text;
    Byte[] bitmapData = Convert.FromBase64String(picStr);
    Response.BinaryWrite(bitmapData);
}

http://www.cnblogs.com/insus/archive/2013/03/08/2950300.html
[解决办法]
我可以浅浅地告诉你问题出在哪里:

根本没有什么“A页面、B页面”这回事。asp.net页面Page对象一瞬间就销毁了,存在的只是在浏览器前端上的两个html页面,当你设计这个处理流程时根本不应该考虑什么asp.net页面存在。

你应该学一些javascript知识,知道他们在客户端浏览器上的关系(比如修改你的连接使用javascript实现链接从而使用javascript的Opener机制,或者别的方法)。
[解决办法]
按照你的思路是没有办法解决的,给<img>设置src属性,浏览器就向服务器发送GET请求,如果不在URL里带参数就没其他办法。但是你的目的是什么?是把这段数据发送到服务器处理,然后返回处理后的图像?倒是可以通过Session或者临时文件的方法,在onClick事件中先把数据POST到服务器一个页面处理,后台可以把数据放到Session中或者存到临时文件中,返回一个标记,然后设置<img>的src属性,带上这个标记,b.aspx页面根据这个标记去查到数据处理。这是个典型的ajax过程。用jQuery如下:
$.ajax({
//post数据到c.aspx,c.aspx临时保存数据,返回一个标记
success:function(data){
    //根据返回的标记设置<img>的src属性到b.aspx,b.aspx根据标记读取数据
}
})

热点排行