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);
}
asp
ImageButton
ImageUrl
传值
------解决方案--------------------
只要定义了posturl,他会把当前控件的值用post的形式传给posturl定义的页面
在posturl页面里面
只要用Request.From[控件的名称name(不一定都是控件ID)]来获取post过来的值
具体可以在当前页用<%= 控件.UniqueID %>查看
------解决方案--------------------
Refer:
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根据标记读取数据
}
})