首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将int类型变量值从内容页(Aspx)传递到母版页和用户控件

将int类型变量值从内容页(Aspx)传递到母版页和用户控件
EN

Stack Overflow用户
提问于 2014-02-06 11:32:20
回答 1查看 1.1K关注 0票数 0

我需要在asp.net webforms中将变量从内容页传递到母版页和用户控件。

MasterPage.aspx由下面的内容页使用。

代码语言:javascript
运行
复制
Default.aspx
Aboutus.aspx
contactus.aspx

如果我没有错,那么页面执行就会发生在

代码语言:javascript
运行
复制
Content Page
Master Page
User Control

由于这个原因,我想定义变量,让我们说page_id in default.aspxAbout.aspxcontactus.aspx.

这样,我就可以在内容页上获得page_id本身的值,并在需要时将其传递给母版页和用户控件。

我不确定如何将变量page_id值传递给母版页中的另一个变量名称(也是page_id )。我需要这样做,因为我不允许对page_Id使用任何querystring或url路由值。

我需要传递变量,而不是来自任何text-box的值,这是可能的,或者我必须为此使用一个hidden-field

我需要传递值,如下图所示。

EN

回答 1

Stack Overflow用户

发布于 2014-02-06 12:07:50

我想你会想和properties - http://msdn.microsoft.com/en-us/library/aa720435(v=vs.71).aspx一起工作。

编辑以反映进一步信息

因此,如果用户控件具有:

代码语言:javascript
运行
复制
public partial class _ascx1 : System.Web.UI.UserControl
{
    public int page_id { set; }

    protected void Page_Load(object sender, EventArgs e)
    {
       // The webcontrol does things here
       if(page_id > 0) { };
    }
}

public partial class _ascx2 : System.Web.UI.UserControl
{
    public int page_id { set; }

    protected void Page_Load(object sender, EventArgs e)
    {
       // The webcontrol does things here
       if(page_id > 0) { };
    }
}

母版页有以下内容:

代码语言:javascript
运行
复制
public partial class _MyMaster : System.Web.UI.MasterPage
{
    public int page_id { set; }

    protected void Page_Load(object sender, EventArgs e)
    {
       // My Master page stuff
       if(page_id > 0) {}; // DO stuff with page ID
    }

然后,内容页面具有如下内容:

代码语言:javascript
运行
复制
protected void Page_Init(object sender, EventArgs e)
{
     ((_ascx1)Page.FindControl("ascx1_id")).page_id = 1;
     ((_ascx2)Page.FindControl("ascx2_id")).page_id = 1;

     ((_MyMaster)Page.Master).page_id = 1;
}

然后,在webcontrol和母版页中,您应该能够访问page_id并使用它做您想做的事情。

通过在内容页面的Page_Init中设置ID,这意味着ID应该在Webcontrols和母版页的Page_Load事件中可用。

可以在母版页上使用textbox /隐藏字段:

代码语言:javascript
运行
复制
<asp:hiddenField id="hdnField" runat="server" value="0" />

然后在内容页中设置它:

代码语言:javascript
运行
复制
((HiddenField)Page.Master.FindControl("hdnField")).value = "1";

并在母版页上访问它: int page_id = hdnField.value

或Webcontrol: int page_id = int.Parse(((HiddenField)Page.Master.FindControl("hdnField")).value);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21601750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档