用户控件文件:webusercontrol1.ascx
<HTML>
<TITLE><%=pagetitle%></TITLE>
<body>
<H2>Global super company</H2>
<P><FONT face="宋体"><EM>we mean business!</P>
<HR width="100%" SIZE="1">
-------------------------------------------------------------------
主体文件:webform1.aspx
<%@ Register TagPrefix="supercompany" TagName="header" Src="webusercontrol1.ascx"%>
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm1" %>
<supercompany:header Id="aa" runat="server" pagetitle="the home page"></supercompany:header>
</body>
</HTML>
----------------------------------------------------------------------
CS文件:webform1.aspx.cs
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
UserControl aa;
}
---------------------------------------------------------------------------
问题是:
如果在cs文件里在为aa(pagetitle)这个用户控件付一个值。如pagetitle="bbb"
我只做到定义这个AA为用户控件,接下去怎么对这个pagetitle在付一个值啊。

解决方案 »

  1.   

    在你的用户控件的codebehind里设置一个public 的变量!
      

  2.   

    //在你的用户控件里面添加一个public Property(has setter),然后就能在页面对控件赋值UserControl uc = (UserControl)this.Page.FindContro("UserControID");//捕获控件
    uc.SetPageTile = "xxx";//设置属性值
      

  3.   

    假设主页面为login.aspx如下传入参数为Para,分别为美国不同州名。测试用的数据库用的sqlserver自带的库。控件代码见第二个程序。关键在于
        private string para="";
        
        public string Para
        {
           get{ return para; }
           set{ para = value; }
        }

        string strSql = "select * from [authors] where city='"+Para.ToString()+"' ";
    传参数的入口为login.aspx中的Para
        <snowy:Login id="login1" runat="server" Para="Oakland"></snowy:Login>
    <script>中的部分对应你的.cs文件。这样参数就可以在.aspx文件中设置了。
    ==================================================================================
    login.aspx<%@ Page Language="c#" %>
    <%@ Register TagPrefix="snowy" TagName="Login" Src="login.ascx" %>
    <html>
    <head>
        <title>test</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <snowy:Login id="login1" runat="server" Para="Oakland"></snowy:Login>
            <hr />
            <snowy:Login id="login2" runat="server" Para="Salt Lake City"></snowy:Login>
            <hr />
            <snowy:Login id="login3" runat="server" Para="Palo Alto"></snowy:Login>
            <hr />
        </form>
    </body>
    </html>
    ==================================================================================
    login.ascx<%@ Control Language="C#" %>
    <%@ import Namespace="System.Data" %>
    <%@ import Namespace="System.Data.SqlClient" %>
    <script runat="server">    private string para="";
        
        public string Para
        {
           get{ return para; }
           set{ para = value; }
        }
        
        DataTable dataTable;
        
        public void Page_Load()
        {
          string dataSource = "Data Source=localhost;";
          string security = "user id=sa; password=sa;";
          string initialCatalog = "initial catalog=pubs;";
          string cnnString = dataSource + security + initialCatalog;
          SqlConnection connection = new SqlConnection(cnnString);
        
          string strSql = "select * from [authors] where city='"+Para.ToString()+"' ";
          SqlCommand command = new SqlCommand(strSql, connection);
          SqlDataAdapter adapter = new SqlDataAdapter();
          adapter.SelectCommand = command;
          dataTable = new DataTable();
        
          try
          {
            connection.Open();
            adapter.Fill(dataTable);
          }
          catch(SqlException e)
          {
            Response.Write(e.ToString());
            return;
          }
          finally
          {
            connection.Close();
          }
        
          if(!IsPostBack)
          {
            grid1.DataSource = dataTable;
            grid1.DataBind();
          }
        }</script>
    <asp:DataGrid id="grid1" AutoGenerateColumns="true" runat="server">
        <HeaderStyle backcolor="lightblue" font-name="Arial" font-bold="true" />
        <ItemStyle backcolor="lightyellow" />
    </asp:DataGrid>