C# 如何从我的aspx页面访问.ascx控件

C# 如何从我的aspx页面访问.ascx控件,c#,asp.net,custom-controls,ascx,C#,Asp.net,Custom Controls,Ascx,我的ascx页面中有以下代码 <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl1.ascx.cs" Inherits="WebUserControl" %> <li id="firstry" runat="server"> first </li> 首先 而aspx页面包含: <uc:Spinner id="Spinner" r

我的ascx页面中有以下代码

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl1.ascx.cs"       Inherits="WebUserControl" %>


<li id="firstry" runat="server"> first </li>

  • 首先
  • 而aspx页面包含:

    <uc:Spinner id="Spinner" 
        runat="server" 
        MinValue="1" 
        MaxValue="10" />
    
    
    

    这只是将我的li打印到我的aspx页面。。但是我想访问ascx中的控件,以便将内联或css类应用到该控件中。有人可以指导我吗?

    在控件的代码中添加:

    public Control FirstTryControl
    {
       get { return firsttry; }
    }
    
    然后您可以从页面正常访问它

    Spinner.FirstTryControl.Styles.Add(...)
    

    这是一种蛮力的方法,你可能需要考虑添加特定于你需要的属性。在代码旁边添加如下内容:

    private _spinnerClass = string.empty;
    public string SpinnerClass 
    {
       get { return _spinnerClass; }
       set { _spinnerClass = value; }
    }
    
    protected void Page_Render(o,e)
    {
       Spinner.Attributes.Add('class', _spinnerClass);
    }
    
    然后在页面中,您可以直接从标记定义这些属性:

    <uc:Spinner id="Spinner" 
        runat="server" 
        MinValue="1" 
        MaxValue="10"
        SpinnerClass="green" />