1

我的情况:

我有一个 ListView,它从 Active Directory 中获取数据。用户在文本框中输入一个字符串(姓氏或其中的一部分)。比 ListView 列出 TextBox 中具有相同字符串的所有 AD 用户。每条线路都有一个按钮“Anzeigen”以获取有关用户的更多信息。第二个 WebForm“Benutzer.aspx”显示有关此用户的信息。我想我需要第二个 WebForm 的选定用户的值(ID 或电子邮件)。所以我需要一个会话。因此,如果我单击“Anzeigen”按钮,我需要电子邮件的值等。这实际上是在 ListView 中的 Line。

我的问题:

我不知道如何获取此 ListView 行的其他信息。我想我需要一种索引或者我必须控制一个单元格。

我的代码:

ASPX

<asp:ListView runat="server" ID="myListView">

        <LayoutTemplate>
            <table id="UserTable" runat="server" border="0" cellspacing="10" cellpadding="5">
                <tr id="Tr1" runat="server">
                    <th id="Th1" runat="server">Benutzer</th>
                    <th id="Th2" runat="server">eMail</th>
                    <th id="Th3" runat="server">Vorname</th>
                    <th id="Th4" runat="server">Nachname</th>
                    <th id="Th5" runat="server">Telefon</th>
                </tr>
                <tr runat="server" id="ItemPlaceholder">
                </tr>
            </table>
        </LayoutTemplate>

        <ItemTemplate>

            <tr runat="server"> 

                <td align="left" ><asp:Label ID="Label1" Text='<%# Eval("Benutzer") %>' runat="server" /></td>
                <td align="left"><asp:Label ID="Label2" Text='<%# Eval("eMail") %>' runat="server" /></td>
                <td align="left"><asp:Label ID="Label3" Text='<%# Eval("Vorname") %>' runat="server" /></td>
                <td align="left"><asp:Label ID="Label4" Text='<%# Eval("Nachname") %>' runat="server" /></td>
                <td align="left"><asp:Label ID="Label5" Text='<%# Eval("Telefon") %>' runat="server" /></td>
                <td align="left"><asp:Button ID="Button1" Text="Anzeigen" OnCommand="Button1_Command" CommandName="Anzeigen" CommandArgument="myArgument" runat="server" /></td>

            </tr>

        </ItemTemplate>

        </asp:ListView>

CS

protected void Button1_Command(object sender, CommandEventArgs e)
        {
            if (e.CommandName == "Anzeigen")
            {
              //Here I need a Session and the Informations about the Selected User in the Line

                Response.Redirect("Benutzer.aspx");

            }
    }

塔拉索夫

4

1 回答 1

1

如果我理解正确,您需要参考在列表视图中显示电子邮件的标签。为此首先获取参考,请参见以下代码:

protected void Button1_Command(object sender, CommandEventArgs e)
    {
        if (e.CommandName == "Anzeigen")
        {
          //Here I need a Session and the Informations about the Selected User in the Line
            Label lb = (Label) myListView.Items(1).FindControl("Label2"); // give the right index, Label2 contains the email so give its ID but index should be correct
            string email = lb.Text;
            Response.Redirect("Benutzer.aspx");

        }
}
于 2012-07-21T18:49:44.947 回答