如何在页面获取页面控件的值,并作为参数传递
推荐于2017-12-15 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517195
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
解析:
经过查询资料,现在初步探索出利用自定义控件的“属性”附加方法,可以实现值的传递!具体见代码:
首先是WebUserControl的前台代码:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
<asp:TextBox ID="TextBox1" runat="server" Text ="yyy"></asp:TextBox>
<asp:Label ID="Label1"
runat="server" Text="Label"></asp:Label>
其次是WebUserControl的后台代码(可见,附加属性):
复制代码
public partial class WebUserControl : System.Web.UI.UserControl
{
//附加用户控件的属性
private string id;
public string Id
{
get { return id; }
set { id = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = this.Id;
}
}
复制代码
后来是验证页面的前台代码(附:如何引用用户控件):
复制代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register TagPrefix ="uc1" TagName ="userControl1" Src ="~/WebUserControl.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<uc1:userControl1 ID="userControl11" runat="server" />
</form>
</body>
</html>
复制代码
最后是验证页面的后台代码:
复制代码
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// string id = Request.QueryString["id"].ToString();
string id = "Y001";
userControl11.Id = id;
}
}
先给用户控件中TextBox赋初值为“yyy “,将用户控件包含进页面后,通过页面获取的值,进而传递至用户控件中,即TextBox值重赋为”Y001“;
由上可见,可以通过附加用户控件属性,实现获取值~
注:由分步调试,可以观察其Page_Load顺序是:先调用页面的Page_Load(),然后调用用户控件的Page_Load()。这样才保证在页面的Page_Load()中对用户控件属性赋值,然后在用户控件的Page_load()中将其属性值取出(此时即可将其使用,进而绑定上述的GridView问题了)。
经过查询资料,现在初步探索出利用自定义控件的“属性”附加方法,可以实现值的传递!具体见代码:
首先是WebUserControl的前台代码:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
<asp:TextBox ID="TextBox1" runat="server" Text ="yyy"></asp:TextBox>
<asp:Label ID="Label1"
runat="server" Text="Label"></asp:Label>
其次是WebUserControl的后台代码(可见,附加属性):
复制代码
public partial class WebUserControl : System.Web.UI.UserControl
{
//附加用户控件的属性
private string id;
public string Id
{
get { return id; }
set { id = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = this.Id;
}
}
复制代码
后来是验证页面的前台代码(附:如何引用用户控件):
复制代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register TagPrefix ="uc1" TagName ="userControl1" Src ="~/WebUserControl.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<uc1:userControl1 ID="userControl11" runat="server" />
</form>
</body>
</html>
复制代码
最后是验证页面的后台代码:
复制代码
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// string id = Request.QueryString["id"].ToString();
string id = "Y001";
userControl11.Id = id;
}
}
先给用户控件中TextBox赋初值为“yyy “,将用户控件包含进页面后,通过页面获取的值,进而传递至用户控件中,即TextBox值重赋为”Y001“;
由上可见,可以通过附加用户控件属性,实现获取值~
注:由分步调试,可以观察其Page_Load顺序是:先调用页面的Page_Load(),然后调用用户控件的Page_Load()。这样才保证在页面的Page_Load()中对用户控件属性赋值,然后在用户控件的Page_load()中将其属性值取出(此时即可将其使用,进而绑定上述的GridView问题了)。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询