C# 如何在列表视图中对链接按钮进行排序

C# 如何在列表视图中对链接按钮进行排序,c#,asp.net,listview,sorting,active-directory,C#,Asp.net,Listview,Sorting,Active Directory,我的节目: 我有一个列表视图,可以从Active Directory获取数据。用户在文本框中输入字符串(Lastname或其一部分)。而不是ListView从文本框中列出具有相同字符串的所有广告用户。每一行都有一个按钮“anzegen”来获取更多关于用户的信息 ASPX: 我想要的是: 如果用户单击LinkButton“Benutzer”,列表必须按字母排序:p我在网站上查看,但在示例和下载文件中不存在此排序方法:( 现在我不知道如何对列表进行排序 因此,我用数据填写我的列表: protect

我的节目:

我有一个列表视图,可以从Active Directory获取数据。用户在文本框中输入字符串(Lastname或其一部分)。而不是ListView从文本框中列出具有相同字符串的所有广告用户。每一行都有一个按钮“anzegen”来获取更多关于用户的信息

ASPX:

我想要的是:

如果用户单击LinkButton“Benutzer”,列表必须按字母排序:p我在网站上查看,但在示例和下载文件中不存在此排序方法:(

现在我不知道如何对列表进行排序

因此,我用数据填写我的列表:

protected void btnBenutzerSuchen_Click(object sender, EventArgs e)
        {
            DirectoryEntry Entry = new DirectoryEntry("LDAP://" + "Domain");

            string filter = "(&(objectClass=user)(objectCategory=person)(cn=" + txtBenutzer.Text + "*))";

            DirectorySearcher Searcher = new DirectorySearcher(Entry, filter);

            var q = from s in Searcher.FindAll().OfType<SearchResult>()
                    select new
                    {
                        Benutzer = GetProperty(s, "sAMAccountName"),
                        eMail = GetProperty(s, "mail"),
                        Vorname = GetProperty(s, "givenName"),
                        Nachname = GetProperty(s, "sn"),
                        Telefon = GetProperty(s, "telephoneNumber")
                    };

            this.myListView.DataSource = q;
            this.myListView.DataBind();

        }
protectedvoid btnBenutzerSuchen\u单击(对象发送方,事件参数e)
{
DirectoryEntry=新的DirectoryEntry(“LDAP://“+”域”);
字符串筛选器=“(&(objectClass=user)(objectCategory=person)(cn=“+txtBenutzer.Text+”*)”;
DirectorySearcher search=新的DirectorySearcher(条目、过滤器);
var q=来自类型()的Searcher.FindAll()中的s
选择新的
{
Benutzer=GetProperty(s,“sAMAccountName”),
eMail=GetProperty(“邮件”),
Vorname=GetProperty(“givenName”),
Nachname=GetProperty(s,“sn”),
Telefon=GetProperty(“电话号码”)
};
this.myListView.DataSource=q;
this.myListView.DataBind();
}

塔拉索夫

在这里,您希望根据数据名对数据进行排序。 为此,必须将datakey传递给rowdataBound事件

例如:

protected void gvEmployeeList_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "name")
    {
        int index = Convert.ToInt32(e.CommandArgument);
        GridViewRow selectedRow = gvEmployeeList.Rows[index];
        string deptID = gridview1.DataKeys[index].Value.ToString().Trim();
         DataTable dtEmplist = new DataTable();
        dtEmplist = getFilterEmployeeList(deptID);
        if (dtEmplist.Rows.Count > 0)
        {
            gridview1.DataSource = dtEmplist;
            gridview1.DataBind();
        }
        else
        {
            lblMsg.Text = "No Data Available";
        }
    }
}
获取数据密钥之后

按排序(GridViewSortEventArgs e)

e、 sortExpression属性


它将帮助您找到我的第一个…

我使用的是ListView而不是GridView MHH我查看并测试了它,然后给您一个请求;)
protected void btnBenutzerSuchen_Click(object sender, EventArgs e)
        {
            DirectoryEntry Entry = new DirectoryEntry("LDAP://" + "Domain");

            string filter = "(&(objectClass=user)(objectCategory=person)(cn=" + txtBenutzer.Text + "*))";

            DirectorySearcher Searcher = new DirectorySearcher(Entry, filter);

            var q = from s in Searcher.FindAll().OfType<SearchResult>()
                    select new
                    {
                        Benutzer = GetProperty(s, "sAMAccountName"),
                        eMail = GetProperty(s, "mail"),
                        Vorname = GetProperty(s, "givenName"),
                        Nachname = GetProperty(s, "sn"),
                        Telefon = GetProperty(s, "telephoneNumber")
                    };

            this.myListView.DataSource = q;
            this.myListView.DataBind();

        }
protected void gvEmployeeList_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "name")
    {
        int index = Convert.ToInt32(e.CommandArgument);
        GridViewRow selectedRow = gvEmployeeList.Rows[index];
        string deptID = gridview1.DataKeys[index].Value.ToString().Trim();
         DataTable dtEmplist = new DataTable();
        dtEmplist = getFilterEmployeeList(deptID);
        if (dtEmplist.Rows.Count > 0)
        {
            gridview1.DataSource = dtEmplist;
            gridview1.DataBind();
        }
        else
        {
            lblMsg.Text = "No Data Available";
        }
    }
}