0

簡単に言うと、ユーザーとグループを実装する Web アプリを作成しています。複数のユーザーには複数のグループがあります。ユーザー、グループ、ユーザーグループの 3 つのテーブルが残ります。

今、グループとそのメンバーを管理したい Web フォームがあります。このために、私は上記のフォームに2つのグリッドビューを持っています。1 つはグループを表示するためのもので、もう 1 つは選択したグループのメンバーを表示するためのものです。

group-gridview には 2 つの列があります。説明と、「メンバーを表示する」というボタンフィールドが存在する別の列です。ユーザーがこのボタンをクリックすると、他のグリッドビューで選択されたグループに基づいてユーザーのリストが取得されます。

しかし、私は本当にこれを行う方法の手がかりを持っていませんか? ここで正しい方向に向けてください。

ここに私のコードがあります:

<asp:Content ID="content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<h1>Gruppenverwaltung</h1>    
<asp:Panel ID="pnlGruppe" ScrollBars="Both" runat="server">
    <asp:Button ID="btnNeueGruppe" Text="Neue Gruppe" runat="server" OnClick="btnNeueGruppe_Click" />
    <asp:GridView DataKeyNames="GruppenID" OnRowCommand="grdGruppe_RowCommand" ID="grdGruppe" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
        <Columns>
            <asp:BoundField DataField="Bezeichnung" HeaderText="Bezeichnung" SortExpression="Bezeichnung" />
            <asp:ButtonField ButtonType="Button" CommandName="MitgliederAnzeigen" Text="Mitglieder anzeigen" />
            <asp:CommandField HeaderText="Archivieren" ButtonType="Button" ShowDeleteButton="true" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
        SelectCommand="SELECT [Bezeichnung], [GruppenID] FROM [Gruppe] WHERE [Archiviert] != 1"
        DeleteCommand="UPDATE Gruppe SET [Archiviert] = 1 WHERE [GruppenID] = @GruppenID"></asp:SqlDataSource>
    <asp:Button ID="btnZurueck" Text="Zurück" runat="server" OnClick="btnZurueck_Click" />
</asp:Panel>  
<asp:Panel Visible="false"  ID="pnlMitglieder" ScrollBars="Both" runat="server">
    <asp:GridView ID="grdBenutzer" runat="server" AutoGenerateColumns="false">

    </asp:GridView>
    <asp:Button ID="Button1" Text="Zurück" runat="server" OnClick="Button1_Click" />
</asp:Panel>  


     protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["UserAuthentication"] == null)
        {
            Response.Redirect("Login.aspx");
        }
    }

    protected void btnZurueck_Click(object sender, EventArgs e)
    {
        Response.Redirect("Datenverwaltung.aspx");
    }

    protected void btnNeueGruppe_Click(object sender, EventArgs e)
    {
        Response.Redirect("NeueGruppe.aspx");
    }

    protected void grdGruppe_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "MitgliederAnzeigen")
        {
            pnlMitglieder.Visible = true;
            pnlGruppe.Visible = false;
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        pnlMitglieder.Visible = false;
        pnlGruppe.Visible = true;
    }
4

1 に答える 1

1

protected void grdGruppe_RowCommand(オブジェクト送信者、GridViewCommandEventArgs e)

    {
        if (e.CommandName == "MitgliederAnzeigen")
        {
        string rowindex = e.CommandArgument as string;//Get Row Index
         string  str = GridView1.Rows[Convert.ToInt32(rowindex)].Cells[0].Text;

           pnlMitglieder.Visible = true;
            pnlGruppe.Visible = false;
        }

str で GroupName を取得した後、その希望に従って 2 番目のグリッド ビューをバインドできます。

于 2013-03-20T12:05:23.270 に答える