导航

用户控件的使用

Posted on 2011-08-05 17:08  clare-zhang  阅读(865)  评论(0)    收藏  举报

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;  //使用用户控件的属性
       }