当用户在树视图中单击员工姓名时,如何获取员工配置文件详细信息 [英] How to get Employee Profile details when user clicks on employee name in tree view

查看:73
本文介绍了当用户在树视图中单击员工姓名时,如何获取员工配置文件详细信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我遇到了一个问题。当用户在树视图控件中选择特定员工时,需要显示员工详细信息。



通过商店程序从Sqldatasource绑定数据。是否可以在树视图控件中显示员工详细信息。



谢谢

解决方案

您需要的问题TreeView的事件处理程序



将它添加到.aspx文件中的treeview控件:



 OnSelectedNodeChanged =yourTreeView_SelectedNodeChanged





并将此函数添加到您的代码中:



 受保护 无效 yourTreeView_SelectedNodeChanged( object  sender,EventArgs e)
{
// 在这里进行SQL操作
}


谢谢Tiririk的建议。 ..





如果您不介意,可以为selectednodechange发布一些对我有用的代码..



以下是我的代码一次检查并让我知道...



 < span class =code-keyword> protected   void  Page_Load( object  sender,EventArgs e )
{
if (会话[ 用户名] == null
{
会话[ 消息] = 您的会话有过期。请再次登录;
Response.Redirect( ../ Account / login.aspx );
return ;
}

if (!IsPostBack)
{
GetTreeViewItems();
}
}



private void GetTreeViewItems()
{
尝试
{
string cs = ConfigurationManager.ConnectionStrings [ MyConnection]。ConnectionString;
SqlConnection con = new SqlConnection(cs);
SqlDataAdapter da = new SqlDataAdapter( sp_GetEmployee,con);
DataSet ds = new DataSet();
da.Fill(ds);

ds.Relations.Add( ChildRows,ds.Tables [ 0 ]。列[ id ],ds.Tables [ 0 ]。列[ 经理ID]);
foreach (DataRow level1DataRow in ds.Tables [ 0 ]。行)
{
if string .IsNullOrEmpty(level1DataRow [ ManagerId]。ToString()))
{
TreeNode parentTreeNode = new TreeNode();
parentTreeNode.Text = level1DataRow [ FirstName]。ToString();
// parentTreeNode.Text = level1DataRow [Designation]。ToString();
parentTreeNode.Value = level1DataRow [ id]。ToString();

GetChildRows(level1DataRow,parentTreeNode);
TreeView1.Nodes.Add(parentTreeNode);
}
}
}
catch (例外情况)
{
throw ex;
}
}

私有 void GetChildRows( DataRow dataRow,TreeNode treeNode)
{
DataRow [] childRows = dataRow.GetChildRows( ChildRows );
foreach (DataRow childRow in childRows)
{
TreeNode childTreeNode = new TreeNode();
childTreeNode.Text = childRow [ FirstName]。ToString();
// childTreeNode.Text = childRow [Designation]。ToString();
childTreeNode.Value = childRow [ id]。ToString();
treeNode.ChildNodes.Add(childTreeNode);
if (childRow.GetChildRows( ChildRows )。长度> 0
{
GetChildRows (childRow,childTreeNode);
}
}
}
受保护 void TreeView1_TreeNodeDataBound ( object sender,TreeNodeEventArgs e)
{
string Prefix = < div style = display:none; class =çontent' > Employee< / DIV>中;
e.Node.Text = Prefix + e.Node.Text;
}


protected void TreeView1_SelectedNodeChanged(object sender,EventArgs e)
{

}
}


Hi all,

I am stuck with one issue. Need to display employee details when user selects particular employee in treeview control.

Binding data from Sqldatasource through store procedure. Is it possible to display employee details in treeview control.

Thanks

解决方案

As your question you need Event handler for TreeView

Add this to your treeview control in .aspx file:

OnSelectedNodeChanged="yourTreeView_SelectedNodeChanged"



And add this function into your code behind:

protected void yourTreeView_SelectedNodeChanged(object sender, EventArgs e)
{
    //do your SQL operation here
}


Thank You Tiririk for you suggestion...


If you dont mind can you post some code for selectednodechange which can be useful for me..

Below is my code once check and let me know...

protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Username"] == null)
        {
            Session["Msg"] = "Your session has expired. please login again";
            Response.Redirect("../Account/login.aspx");
            return;
        }
       
        if (!IsPostBack)
        {
            GetTreeViewItems();
        }
    }

           

    private void GetTreeViewItems()
    {
        try
        {
           string cs = ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
            SqlConnection con = new SqlConnection(cs);
            SqlDataAdapter da = new SqlDataAdapter("sp_GetEmployee", con);    
            DataSet ds = new DataSet();
            da.Fill(ds);

            ds.Relations.Add("ChildRows", ds.Tables[0].Columns["id"], ds.Tables[0].Columns["ManagerId"]);
            foreach (DataRow level1DataRow in ds.Tables[0].Rows)
            {
                if (string.IsNullOrEmpty(level1DataRow["ManagerId"].ToString()))
                {
                    TreeNode parentTreeNode = new TreeNode();
                    parentTreeNode.Text = level1DataRow["FirstName"].ToString();
                  // parentTreeNode.Text = level1DataRow["Designation"].ToString();
                    parentTreeNode.Value = level1DataRow["id"].ToString();

                    GetChildRows(level1DataRow, parentTreeNode);
                    TreeView1.Nodes.Add(parentTreeNode);
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void GetChildRows(DataRow dataRow, TreeNode treeNode)
    {
        DataRow[] childRows = dataRow.GetChildRows("ChildRows");
        foreach (DataRow childRow in childRows)
        {
            TreeNode childTreeNode = new TreeNode();
            childTreeNode.Text = childRow["FirstName"].ToString();
          // childTreeNode.Text = childRow["Designation"].ToString();
            childTreeNode.Value = childRow["id"].ToString();
            treeNode.ChildNodes.Add(childTreeNode);
            if (childRow.GetChildRows("ChildRows").Length > 0)
            {
                GetChildRows(childRow, childTreeNode);
            }
        }
    }
    protected void TreeView1_TreeNodeDataBound(object sender, TreeNodeEventArgs e)
    {
        string Prefix = "<div style="display:none;" class="çontent'">Employee</div>";
        e.Node.Text = Prefix + e.Node.Text;
    }


    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
        
    }
}


这篇关于当用户在树视图中单击员工姓名时,如何获取员工配置文件详细信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆