我有一个表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。
答案 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)
根据您对评论的回复,我建议您执行以下操作:
Here.aspx
将数据加载到Id
后端(.cs文件)答案 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;
}