如何将数据从一个用户控件传递给另一个用户控件都放在default.aspx
中我有两个用户控件,uc1.ascx
和uc2.ascx
都放在Default.aspx
页面中。
uc1.ascx contains --> one Dropdown List ,
uc2.ascx contains ---> Repeater control
当下拉列表选择的索引发生变化时,我想根据uc2.aspx
聊聊Repeater control
- > dropdown Selection
数据。
由于
答案 0 :(得分:0)
你可以用事件BubbleEvent来做到这一点..
我的事件args 我用它来传输选定的数据
advises
用户控件1名为uc1
public class MyEventArgs : EventArgs
{
public string Value { get; set; }
public string Text { get; set; }
}
用户控制1下拉列表
public partial class uc1 : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void uc1Dorpdown_SelectedIndexChanged(object sender, EventArgs e)
{
// event bubbling
RaiseBubbleEvent(this, new MyEventArgs
{
Value = this.uc1Dorpdown.SelectedItem.Value,
Text = this.uc1Dorpdown.SelectedItem.Text
});
}
}
用户控件2名为uc2
<asp:DropDownList ID="uc1Dorpdown" runat="server" AutoPostBack="true" OnSelectedIndexChanged="uc1Dorpdown_SelectedIndexChanged">
<asp:ListItem Value="1" Text="Item 1" ></asp:ListItem>
<asp:ListItem Value="2" Text="Item 2" ></asp:ListItem>
<asp:ListItem Value="3" Text="Item 3" ></asp:ListItem>
<asp:ListItem Value="4" Text="Item 4" ></asp:ListItem>
<asp:ListItem Value="5" Text="Item 5" ></asp:ListItem>
<asp:ListItem Value="6" Text="Item 6" ></asp:ListItem>
</asp:DropDownList>
默认aspx
public partial class uc2 : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
// public is important
public void RepeaterUpdate(MyEventArgs newValue)
{
// call repeater update code
}
}
答案 1 :(得分:0)
这样做的一种方法是创建嵌入两个用户控件的页面的公共属性,并使用此属性在两个用户控件之间发送数据。
为此,您需要将用户控件中的this.parent属性强制转换为您的页面类型,然后才能获取/设置该值。像
这样的东西(this.parent as MyPage).MyProperty