将值从Page传递到UserControl
本文关键字:UserControl Page | 更新日期: 2023-09-27 18:15:07
大家好。我在webform和UserControl之间传递数据时遇到了麻烦。
我有webform webform .aspx。我有一个组件GridView1。我也有UserControl - grdControl.ascx.
在webform1。aspx:
<uc1:grdcontrol runat="server" id="grdControl" />
webform1.aspx.cs也包含一个事件
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
grdControl.SelectedValue = GridView1.SelectedValue.ToString();
}
UserControl grdcontrol . asx .cs包含以下代码:
private string _selectedValue;
public string SelectedValue
{
get { return _selectedValue; }
set { _selectedValue = value; }
}
在grdControl 。ascx我使用标签,我试着得到值SelectedValue,并使用它作为文本Label1。
<asp:Label ID="Label2" runat="server" Text='<%# SelectedValue%>' ></asp:Label>
但是不能正常工作。
在后台代码的PreRender事件中设置标签的值应该可以解决这个问题。
我认为GridView1_SelectedIndexChanged将在内部网格控件的Page_Load事件后被调用,这就是为什么值是空白的原因,因为你试图在页面本身设置它,这发生在内部控件的Pre_init函数中。我不认为SelectedValue会在那个时候被设置