2013-03-20 2 views
0

, чтобы сделать что-то не так, я пишу веб-приложение, которое реализует пользователей и группы. несколько пользователей имеют несколько групп. что оставляет меня с тремя таблицами: user, group, usergroup.выберите поля из таблицы на основе выбранного поля другой таблицы в asp.net

теперь у меня есть веб-форма, в которой я хочу управлять группами и их членами. для этого у меня есть два вида сетки на указанной форме. один для отображения групп, другой для отображения членов выбранной группы.

group-gridview имеет два столбца: описание и другое, где расположено кнопочное поле, в котором говорится «элементы отображения». когда пользователь нажмет эту кнопку, он получит список пользователей на основе выбранной группы в другом gridview.

Однако, я действительно не знаю, как это сделать? не могли бы вы указать мне в правильном направлении здесь?

вот мой код:

<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; 
    } 
+0

никто не получил никакого ответа? Мне просто нужен оператор sql, который позволяет мне выбрать первое и последнее имя из таблицы пользователя. но поскольку он проходит через одну «среднюю» таблицу из-за многих отношений, я не знаю, как это работает ... – LeonidasFett

ответ

1

защищен недействительным grdGruppe_RowCommand (объект отправителя, GridViewCommandEventArgs е)

{ 
     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; 
     } 

После Geting ИмяГруппы ул и можно связать ur второй вид сетки в соответствии с тем, что надежда поможет u

+0

спасибо за ответ. однако я выбрал группу, так как на самом деле две группы могут иметь одно и то же имя. теперь мне просто нужно получить идентификатор пользователя из таблицы пользовательских групп и отобразить первое и последнее имя в соответствии с идентификатором пользователя из таблицы пользователя ... я обновил свой код выше – LeonidasFett

+0

извините leonidas, я не мог понять, что вы спрашиваете в комментарии ..i подумайте, что вам нужен идентификатор группы, а не имя справа , для которого определено поле datakeys ur gridview с ur groupid ..... и u может получить этот идентификатор gridview1.datakey [rowindex] .tostring(); надеюсь, что что вам нужно !!!! –

+0

Когда я нажимаю кнопку «Mitglieder anzeigen», мне нужно получить все идентификатор пользователя из таблицы групп пользователей, которые имеют ссылочное поле для идентификатора группы. то, основываясь на этих идентификаторах пользователя, мне нужно получить имя и фамилию из таблицы пользователя. у меня уже есть groupid, теперь мне просто нужно как-то получить пользовательские данные из таблицы пользователя, чтобы отобразить ... – LeonidasFett

Смежные вопросы