Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用母版页的设计建议_C#_Asp.net_Master Pages - Fatal编程技术网

C# 使用母版页的设计建议

C# 使用母版页的设计建议,c#,asp.net,master-pages,C#,Asp.net,Master Pages,母版页 <div id="header" style="height: 150px; width: 750px;"> <asp:Label ID="Label3" runat="server" Text="LoggedInUser:"></asp:Label> <asp:Label ID="lblLoggedInUser" runat="server" Text=""></asp:Label>

母版页

  <div id="header" style="height: 150px; width: 750px;">
        <asp:Label ID="Label3" runat="server" Text="LoggedInUser:"></asp:Label>
        <asp:Label ID="lblLoggedInUser" runat="server" Text=""></asp:Label>
    </div>
    <div id="leftMenu" class="leftmenu">
          <br />
        <asp:DropDownList ID="ddlFamilyMembers" runat="server" 
              style="height: 25px; width: 125px" DataTextField="FullName" 
              DataValueField="MembershipGen" 
              onselectedindexchanged="ddlFamilyMembers_SelectedIndexChanged" 
              AutoPostBack="True" >
        </asp:DropDownList>
          <br /><br />
          <asp:Image ID="imageMember" class="space" runat="server" Height="150px" Width="125px" />
          <br /><br /><br />
        <asp:Label ID="Label1" runat="server" class="space" Text="MembershipID:"></asp:Label>
        <asp:Label ID="lblMembershipID" runat="server" Text=""></asp:Label>

        <br />
        <asp:Label ID="Label2" runat="server" class="space"  Text="Name:"></asp:Label>
        <asp:Label ID="lblMemberName" runat="server" Text=""></asp:Label>

        <br /><br /><br />
          <asp:LinkButton ID="lbInformation" class="space" runat="server" onclick="lbInformation_Click">Member Information</asp:LinkButton><br />
          <asp:LinkButton ID="lbAddress" class="space" runat="server" 
              onclick="lbAddress_Click">Member Address</asp:LinkButton>
    </div>

<div id="divRight" class="divright">
        <asp:ContentPlaceHolder ID="CPHMain" runat="server">
        </asp:ContentPlaceHolder>
        </div>











会员信息
会员地址
我发布了我的主页代码,以便您更好地理解我的问题。由于这些控件位于母版页中,我需要为母版页中的所有控件创建公共属性,以对内容页进行数据绑定。也许我的做法是错误的,但这就是我计划实现这一目标的方式

内容页 Default.aspx
page\u load
事件将调用我的方法来检索数据并设置dropdownlist、image和2个标签字段。在dropdownlist的选定索引更改上,它将从另一个方法获取新值,并相应地填充这些控件

要在我的母版页中访问这些控件,我了解到您可以通过两种不同的方式来访问它们,一种是
,然后创建强类型连接。或者您可以创建一个松散类型的连接

我对这些方法的问题是,我将有超过15个内容页,我不希望每次调用其中一个内容页时都必须重新绑定DropDownList。此外,我还必须重新验证我的内容页的每个方法中的控件,我认为我这样做是错误的


有没有人能给我一些建议,在没有这么多重复代码的情况下,如何正确地实现这一点?

你的想法是正确的,试图将父母与孩子分离,但我认为你想要的方式可能很笨拙

假设你能做到这一点,我会做如下:

  • 在母版页的代码隐藏上创建一个公共方法
    BindFamilyMembers(字符串参数)

  • 从子页面,将必要的唯一参数传递给此
    BindFamilyMembers
    Master方法

这样,您就不需要公开控件本身,而是可以公开一个基于参数修改这些控件的方法

编辑

您希望通知子页面DDL SelectedIndex已更改。这是定制事件的一个很好的例子

您可以在母版页上配置子页侦听的事件。当DDL.SelectedIndex发生更改时,您可以通过自定义事件触发自定义事件(并传递所选信息),任何正在侦听的子页面都可以处理该事件


网上有很多定制活动的例子。你可以从以下一个开始:

我不清楚这个问题。那么,在更改母版页上的下拉列表时,内容页会更改吗?或者不同的内容页需要在下拉列表中有不同的选项,因此您需要将这些数据传递给母版页中的函数,并且您正在母版页中使用公共函数来实现这一点?我很困惑母版页中的下拉列表与在内容页中加载内容有什么关系?或者你是说内容页的加载会导致母版页(特别是下拉列表)发生更改?对不起,我尽量解释清楚。如果包含不同成员的dropdownlist被更改,表单将使用该成员信息进行更新。因此,基本上您希望将数据从母版页传递到内容页,对吗?根据dropdownyes的值,但不使用重复代码,这也必须在内容页的页面加载之前完成,因为母版页的页面加载在内容页的页面加载之前执行,您不必这样做,但这是一个选项。当用户更改成员时,dropdownlist将保存一个成员列表。我的计划是根据dropdownlist值更新表单。这将如何影响meSo每个子页面代表一个成员?如果是这样,这仍然有效。每个子页面表示成员的配置文件信息,例如第一个子页面将是成员信息。。。第二个子页面将是会员地址第三个将是会员学校信息。。。当你在这个子页面上时,如果用户决定切换dropdownlist中的成员,我想根据dropdownlist中选择的成员更新表单