QueryString到Textbox

时间:2013-05-28 05:14:19

标签: c# asp.net

我有一个表tblProfile,其中包含带有Id,Name,Address的字段。我有2个aspx页面,分别是Home.aspx和Here.aspx。在我的Home.aspx上,我使用此代码在我的Here.aspx中传递了Id:

<asp:HyperLink ID="link" runat="server" NavigateUrl="Here.aspx?id={0}" 
            Font-Names="Times New Roman" Font-Size="Medium" >Click here</asp:HyperLink>

在Home.aspx.cs后面的代码中:

protected void Page_Load(object sender, EventArgs e)
{
    string bID = Request.QueryString["Id"];
    if (string.IsNullOrEmpty(Id))
    {
        Response.Redirect("Here.aspx?", true);
    }
    ViewState["Id"] = Id;
    link.NavigateUrl = String.Format(link.NavigateUrl, Id);

}

我在第二页中将Id传递给url没有任何问题。但我现在想要的是,在我的Here.aspx上,我有3个文本框,应该由从Home.aspx传递的特定Id的Id,Name和Address填充。试过很多,但根本没有运气。任何帮助,将不胜感激。顺便说一下,我正在使用带有c#的asp.net。

3 个答案:

答案 0 :(得分:1)

我们有两个解决方案

解决方案1:asp.net中的User Previous页面属性,因此您无需传递ID。即

 protected void Page_Load(object sender, EventArgs e)
    {
        // Find the name on the previous page
        TextBox txt = (TextBox)Page.PreviousPage.FindControl("txtNameText");

        if (txt != null)
            txtName.Text = Server.HtmlEncode(txt.Text);
        else
            txtName.Text = "[Name Not available]";
    }

解决方案2:从查询字符串中获取ID并通过ID在文本框文本属性中获取数据.i.e。

protected void Page_Load(object sender, EventArgs e)
        {
            // Get value from query string
            string profileID = Request.QueryString["Id"];

            // Fetch data from database by ID
            DataTable dt = FetchEmployeeDataByID(ProfileID);

            txtName.text = dt.rows[0]["Name"].tostring();

        }

答案 1 :(得分:0)

根据您对评论的回复,我建议您执行以下操作:

  1. 通过从查询字符串中检索到的Here.aspx将数据加载到Id后端(.cs文件)
  2. 将加载的数据显示到所需的文本框中。

答案 2 :(得分:0)

您可以使用查询字符串中的Id作为密钥从数据库中检索配置文件数据来获取名称和地址。

所以在你的Here.aspx代码背后:

protected void Page_Load(object sender, EventArgs e)
{
    string profileID = Request.QueryString["Id"];
    // Retrive profile in your db..
    var profile = Profiles.Get(p => p.ProfileID == profileID);

    // Populate the textboxes
    txtId.Text = profileID;
    txtName.Text = profile.Name;
    txtAddress.Text = profile.Address;
}