美好的一天。我在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>
但是不能正常工作。在网页中我什么也看不见。
答案 0 :(得分:0)
在后面的代码的PreRender事件中设置标签的值应该修复它。
我认为GridView1_SelectedIndexChanged将在内部网格控件的Page_Load事件之后被调用,这就是为什么值为空的原因,因为您试图在页面本身设置它并且在内部控件的Pre_init函数中发生。我认为不会在那时设置SelectedValue。