我有两个webforms,每个都有一个ListBox控件。
如何从webformB访问位于webformA上的列表框?
例如,我希望在WebFormB上声明类似string name = ListBoxWebformA.SelectedValue.ToString();
的内容,以便我可以在WebFormB的代码中使用该值。
WebFormA上的ListBox列出了几个名称。
当我从列表框中选择一个名字并按下OK按钮时,我会拨打Response.Redirect("~/WebFormB.aspx")
;
因此,从WebFormB我希望通过将所选值放入字符串来访问此“名称”。
答案 0 :(得分:1)
我猜你不得不求助于在查询字符串中将值从A传递给B,或者将值存储在Session中并随后读取。
那就是
Response.Redirect(string.Format("~/WebFormB.aspx?YourVariable={0}",HttpUtility.UrlEncode(ListBoxWebformA.SelectedValue));
你可以在表格B中阅读
Request.QueryString["YourVariable"]
如果值不敏感,则上述方法最佳。
如果是......要在会话中存储:
Session["YourVariable"] = ListBoxWebformA.SelectedValue
阅读...
if (Session["YourVariable"] != null) {
var listAValue = Session["YourVariable"].ToString()
}
答案 1 :(得分:1)
根据您的编辑,执行此操作的最简单(可能是最佳)方式 not 是在{{1}请求期间尝试维护webformA
的有状态实例}}。重定向用户后,假设webformB
已消失。
相反,当您即将执行webformA
到Response.Redirect()
时,请以某种方式包含您希望传递的webformB
值。最简单的方法是在查询字符串上。类似的东西:
webformA
然后,在Response.Redirect(string.Format("~/WebFormB.aspx?name={0}", HttpUtility.UrlEncode(ListBoxWebformA.SelectedValue.ToString())));
中,您可以访问以下值:
webformB
请注意,您需要进行一些错误检查等。确保在将值附加到string name = Request.QueryString["name"];
上的重定向网址之前实际选择了该值,确保webformA
在使用前包含值它在Request.QueryString["name"]
等等。
但是,一般的想法是在从一个表单重定向到另一个表单时,通过查询字符串或POST值或Session值或其他一些更有状态的方式传递该值。