ascx内容:
<asp:TreeView ID="treeViewDapartment" runat="server" SelectedNodeStyle-BackColor="GrayText"
Font-Size="13px" ShowCheckBoxes="none" ShowLines="true" AutoGenerateDataBindings="false"
ShowExpandCollapse="true" Height="240px" OnSelectedNodeChanged="treeViewDapartment_SelectedNodeChanged">
</asp:TreeView>
1、添加属性
private string m_SelectedNodeText="";
private string m_SelectedNodeValue = "";
public string SelectedNodeValue
{
get
{
return this.treeViewDapartment.SelectedNode.Value.Trim();
}
}
public string SelectedNodeText
{
get
{
return this.treeViewDapartment.SelectedNode.Text.Trim();
}
}
2、通过委托来添加事件
这个事件主要是基于TreeView的SelectChanged的事件,让调用控件的地方能够捕捉到这个事件,并执行相应的操作。
A、ascx后台:
//定义委托,专门处理点击树节点出发的事件
public delegate void SelectedNodeChangedHandler(object sender, EventArgs e);
//定义事件
public event SelectedNodeChangedHandler SelectedNodeChanged;
private void OnSelectedNodeChanged(object sender, EventArgs e) //调用时的触发事件
{
if (SelectedNodeChanged != null)
{
SelectedNodeChanged(this, e);
}
}
protected void treeViewDapartment_SelectedNodeChanged(object sender, EventArgs e) //当前控件的触发事件
{
try
{
//触发上面定义的委托事件
OnSelectedNodeChanged(sender, e);
}
catch (Exception err)
{
throw err;
}
}
B、aspx页面
<%@ Register TagPrefix="uc1" TagName="Department" Src="~/DCM/Public/PublicControl/DepartmentTree.ascx" %>
<uc1:Department ID="departmentTree" runat="server" OnSelectedNodeChanged="departmentTree_OnSelectedNodeChanged" />
protected void departmentTree_OnSelectedNodeChanged(object sender, EventArgs e) //用户控件定义的方法
{
this.label2.Text = this.departmentTree.SelectedNodeText; //使用用户控件的属性
}