c#
  • asp.net
  • user-controls
  • 2014-06-10 44 views 1 likes 
    1

    我有一个用户控件,我想从我的.aspx页面传递一个值。我在usercontrol中设置了一个属性,将其设置为我需要从页面中获得的值,但值始终为空。ASP.NET将变量从.aspx页面传递给UserControl

    这里是在.aspx页面我的控制代码,

    <tcs:SubmitDataDiscrepancy runat="server" ID="SubmitDataDiscrepancy" EntityNameProp='<%# Bind("Association_Name") %>'/> 
    

    中的.ascx代码,

    <div style="text-align:right;"> 
    <asp:LinkButton ID="ReportLink" runat="server" Text="Report data discrepancy"></asp:LinkButton> 
    

    <asp:Panel ID="ReportPanel" runat="server" CssClass="modalPopup" style="width:auto;"> 
    <div id="PopHeader" style="background-color: black; color: white; height: auto;"> 
        Report discrepancy 
         <div style="float: right;"> 
          <asp:LinkButton runat="server" ID="AssociationCancelTextButton" CausesValidation="False" Font-Underline="false" 
           CssClass="glyphicon glyphicon-remove white" ToolTip="Close" /> 
         </div> 
    </div> 
    <div style="margin:10px;"> 
        <div> 
         Submit change request for: <asp:Label ID="EntityName" runat="server" /> 
        </div> 
        <div> 
         <textarea id="reportTextArea" runat="server" class="form-control" style="height: 100px; margin-bottom:10px; width: 100%;"></textarea> 
         <button id="reportSubmitButton" runat="server" class="btn btn-primary" type="submit">Submit</button> 
        </div> 
    </div> 
    

    和.ascx.cs页面,

    public partial class SubmitDataDiscrepancy : System.Web.UI.UserControl 
    { 
        public string EntityNameProp { get; set; } 
    
        protected void Page_Load(object sender, EventArgs e) 
        { 
         EntityName.Text = EntityNameProp; 
        } 
    } 
    

    为什么我没有得到我是从.aspx页面中期待值?

    回答

    1

    所有变量都放置在页面生命周期的末尾,这就是HTTP的无状态本质。所以你需要一种方法来坚持你的财产。例如,您可以使用ViewState,SessionHiddenFieldOther ways)。

    在这种情况下是有意义的只是使用Label.Text

    public partial class SubmitDataDiscrepancy : System.Web.UI.UserControl 
    { 
        public string EntityNameProp { 
         get { return EntityName.Text; } 
         set{ EntityName.Text = value; } 
        } 
    } 
    
    +0

    这工作!谢谢 –

    相关问题