有2个.aspx页面,Default.aspx和ResultPage.aspx,传递前者中控件数据至后者:
DropDownList dropDownListEvents = (DropDownList)PreviousPage.FindControl("DropDownList1");
string SelectedEvent = dropDownListEvents.SelectedValue;
string firstname = ((TextBox)PreviousPage.FindControl("textFirstname")).Text;
string lastname = ((TextBox)PreviousPage.FindControl("textLastname")).Text;
string email = ((TextBox)PreviousPage.FindControl("textEmail")).Text;
LabelResult.Text = firstname + " " + lastname + " select the event: " + SelectedEvent;
其中,DropDownList1,textFirstname,textLastname,textEmail是Default.aspx中的控件ID。
在.NET 2.0中,Page类有一个新属性PreviousPage,可以访问这些控件的值。PreviousPage返回一个Page对象,这个对象中的控件可以使用FindControl()方法来访问。FindControl()定义为返回一个Control对象,所以必须把返回值的类型转换为所搜索的控件类型。
PS:如果数据传递的事件由Default.aspx中的一个Button_Click来触发,则需注意修改其PostBackUrl属性为传递至的页面地址[本例中显然是ResultPage.aspx]。