将值从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>

但是不能正常工作。

将值从Page传递到UserControl

在后台代码的PreRender事件中设置标签的值应该可以解决这个问题。

我认为GridView1_SelectedIndexChanged将在内部网格控件的Page_Load事件后被调用,这就是为什么值是空白的原因,因为你试图在页面本身设置它,这发生在内部控件的Pre_init函数中。我不认为SelectedValue会在那个时候被设置