用户控件文件: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在付一个值啊。
<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在付一个值啊。
uc.SetPageTile = "xxx";//设置属性值
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>