将值从Page传递给UserControl

时间:2014-07-28 11:30:50

标签: c# asp.net user-controls

美好的一天。我在webform和UserControl之间传递数据时遇到了麻烦。

我有webform webform1.aspx。我有一个组件GridView1。我也有UserControl - grdControl.ascx。

在webform1.aspx中我提到UserControl:

<uc1:grdcontrol runat="server" id="grdControl" />

webform1.aspx.cs也包含一个事件

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
  {
     grdControl.SelectedValue = GridView1.SelectedValue.ToString();
  }

反过来,UserControl grdControl.ascx.cs包含以下代码:

private string _selectedValue;        
public string SelectedValue         
{            
  get { return _selectedValue; }            
  set { _selectedValue = value; }
}

在grdControl.ascx中我使用label并尝试获取值SelectedValue并将其用作Label1的文本。

<asp:Label ID="Label2" runat="server" Text='<%# SelectedValue%>' ></asp:Label>

但是不能正常工作。在网页中我什么也看不见。

1 个答案:

答案 0 :(得分:0)

在后面的代码的PreRender事件中设置标签的值应该修复它。

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