2

我有一个 ASP.NET 站点,并且我有一个使用 url 查询字符串的页面:

routeToScene.aspx?RunNumber=3253665

RunNumber=XXXXXXX当我在 URL 中传递参数时,这加载得很好。

我想要做的是通过RunNumber=XXXXXXX通过另一个页面上的文本框传递来加载此页面:routToHospitalParam.aspx使用一个简单的提交按钮,该按钮获取文本框中的值并将其传递给第二页的 URL。这应该很简单,我因为找不到答案而感到愚蠢。

这是routeToHospitalParam.aspx页面中的代码...

<asp:TextBox ID="TextBox1" Width="80px" MaxLength="7" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Submit" PostBackUrl="~/MAP/routeToHospital.aspx" + TextBox1.text />

问题是当我尝试在加载其他页面时使用TextBox1.value(假设是正确的) 。PostBackUrl

4

3 回答 3

2

你可以这样做

在 aspx 中更改代码以处理 onclick 事件:

<asp:Button ID="Button1" runat="server" Text="Submit" 
OnClick="Button1_OnClick" />

在代码隐藏按钮单击事件重定向用户与查询参数:

protected void Button1_OnClick(object sender, EvenArgs e)
{
  Response.redirect("~/MAP/routeToHospital.aspx?RunNumber=" + HttpUtility.UrlEncode(TextBox1.text));
}
于 2013-03-13T16:14:10.350 回答
1

你真的想看看ASP.Net 中的跨页发帖

它使用对象的PreviousPage属性Page。那就是您可以避免尝试通过查询字符串传递值。

例如

C#

TextBox textBox = (TextBox)Page.PreviousPage.FindControl("TextBox1");

VB

Dim textBox as TextBox = CType(Page.PreviousPage.FindControl("TextBox1"), TextBox)
于 2013-03-13T16:06:41.827 回答
0

您可以尝试一些如下的 jQuery 函数来设置回发 url:

$(function(){
$('#Button1').click(function(){
    $('#Button1').attr("action", "/MAP/routeToHospital.aspx?RunNumber=" + $('#TextBox1').val());
   });
});

或将其添加到文本框的模糊事件中:

$(function(){
$('#TextBox1').blur(function(){
    $('#Button1').attr("action", "/MAP/routeToHospital.aspx?RunNumber=" + $('#TextBox1').val());
   });
});
于 2013-03-13T16:17:00.863 回答