2014-02-06 3 views
0

Я делаю веб-приложение в asp.net. Это приложение для фитнеса. где участники регистрируются на сайте, вставляют различные упражнения, которые они делают, и они также могут присоединиться к группе фитнес-клуба.Отображение информации. В Gridview asp.net

Когда я регистрируюсь в клубе, у меня есть все члены этого клуба, отображаемые в Gridview, и у меня есть кнопка выбора в выбранном Gridview. Когда нажата кнопка выбора, я хочу видеть, что делали люди, которые хранятся в таблице AssignPlan, например, Run, Gym work и т. Д.

Однако, когда я показываю эту информацию, я делаю это с помощью чтобы получить конкретную информацию о том, кто когда-либо вошел в систему. Но для групп я хочу, чтобы люди видели информацию других людей, но сеансы не будут работать для меня как человека, который является информацией. Я хочу, чтобы вызвать не вошли в систему

Когда я отображая свою собственную информацию, это код, я использую:. Там

SqlDataAdapter dadapter; 
DataSet dset; 

SqlConnection con = new SqlConnection(@"ConnectionString"); 
string sql = "select * from ExerciseType"; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    lblRegistered.Text = Session["Name"].ToString(); 

    if (!IsPostBack) 
    { 
     dadapter = new SqlDataAdapter(sql, con); 
     dset = new DataSet(); 
     dadapter.Fill(dset); 
     DropDownList1.DataSource = dset.Tables[0]; 
     DropDownList1.DataTextField = "ExerciseType"; 
     DropDownList1.DataValueField = "ExerciseType"; 
     DropDownList1.DataBind(); 

     GridViewBind(); 

    } 
} 

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    GridViewBind(); 
} 


public void GridViewBind() 
{ 

    dadapter = new SqlDataAdapter("SELECT ExerciseName FROM ExerciseDisplay Where TypeName = '" + DropDownList1.SelectedValue + "'", con); 

    dset = new DataSet(); 
    dadapter.Fill(dset); 
    GridView1.DataSource = dset.Tables[0]; 
    GridView1.DataBind(); 

} 

Есть ли способ сделать это? Любая помощь могла бы быть полезна!

+0

Не уверен, что я полностью понимаю, что вы хотите сделать, но я думаю, что QueryString может помочь вам. Вы просто переходите на новую страницу с идентификатором человека в качестве строки запроса. Используйте идентификатор, чтобы получить информацию о человеке. – codingbiz

+0

Чтобы просто уточнить, все участники, входящие в группу, имеют свои собственные упражнения, которые они ввели в форму упражнений. Я пытаюсь щелкнуть по члену, и это приводит меня к форме упражнений, которая отображает их упражнения, которые они уже вставили. Так что да, я думаю, что вы на правильном пути с извлечением идентификатора и, возможно, помещаете свое имя пользователя на ярлык и извлекаете из него свои упражнения. Как я могу получить идентификатор? Я очень новичок в C#, и я немного борюсь. У вас есть код, который бы мне помог? – user3249809

+0

Так же, как вы получили имя пользователя из сеанса, из списка других пользователей в вашем Gridview, ваша ссылка может содержать часть запроса, такую ​​как 'relateduser.aspx? Username = john'. Это приведет вас к другой странице, где вы можете получить имя пользователя из строки запроса и использовать его для отображения упражнений для пользователя. Две страницы, одна из которых использует имя пользователя из сеанса, а другая - имя пользователя из querystring, но страница имеет ту же логику, что и источник имени пользователя. Google HyperlinkColumn для GridView о том, как создать ссылку из полей в Gridview – codingbiz

ответ

0

Вы имеете 2 решения:

  1. В первой сетке установите свойство DataKeyNames как идентификатор пользователя, затем добавьте еще одну сетку и в источнике данных сделать ИНЕК, которые используют GridView1.SelectedValue, чтобы получить упражнения пользователей. Вот пример, когда вы выбираете компанию. Второй GridView отобразит своих контактных лиц.

  2. Добавить строку гиперссылки в GridView, в которой указывается другая форма, в которой вы будете отображать упражнения пользователя и передавать идентификатор пользователя как QueryString.

Пример на решение 1:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Comp_CompanyId" DataSourceID="SqlDataSource1"> 
    <Columns> 
     <asp:BoundField DataField="Comp_CompanyId" HeaderText="Comp_CompanyId" ReadOnly="True" SortExpression="Comp_CompanyId"></asp:BoundField> 
     <asp:BoundField DataField="Comp_Name" HeaderText="Comp_Name" SortExpression="Comp_Name"></asp:BoundField> 
     <asp:BoundField DataField="Comp_Type" HeaderText="Comp_Type" SortExpression="Comp_Type"></asp:BoundField> 
     <asp:BoundField DataField="Comp_Status" HeaderText="Comp_Status" SortExpression="Comp_Status"></asp:BoundField> 
     <asp:ButtonField CommandName="Select" Text="Select" /> 
    </Columns> 
</asp:GridView> 
<asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString='<%$ ConnectionStrings:CRMConnectionString %>' SelectCommand="SELECT [Comp_CompanyId], [Comp_Name], [Comp_Type], [Comp_Status] FROM [Company]"></asp:SqlDataSource> 

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource2"> 
    <Columns> 
     <asp:BoundField DataField="Pers_FirstName" HeaderText="Pers_FirstName" SortExpression="Pers_FirstName" /> 
     <asp:BoundField DataField="Pers_LastName" HeaderText="Pers_LastName" SortExpression="Pers_LastName" /> 
     <asp:BoundField DataField="Pers_Salutation" HeaderText="Pers_Salutation" SortExpression="Pers_Salutation" /> 
     <asp:BoundField DataField="Pers_Title" HeaderText="Pers_Title" SortExpression="Pers_Title" /> 
     <asp:BoundField DataField="Pers_MiddleName" HeaderText="Pers_MiddleName" SortExpression="Pers_MiddleName" /> 
    </Columns> 
</asp:GridView> 
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:CRMConnectionString %>" SelectCommand="SELECT [Pers_FirstName], [Pers_LastName], [Pers_Salutation], [Pers_Title], [Pers_MiddleName] FROM [Person] WHERE ([Pers_CompanyId] = @Pers_CompanyId)"> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="GridView1" Name="Pers_CompanyId" PropertyName="SelectedValue" Type="Int32" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

Пример на решение 2:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Comp_CompanyId" DataSourceID="SqlDataSource1"> 
    <Columns> 
     <asp:TemplateField HeaderText="Comp_CompanyId" SortExpression="Comp_CompanyId"> 
      <EditItemTemplate> 
       <asp:Label ID="Label1" runat="server" Text='<%# Eval("Comp_CompanyId") %>'></asp:Label> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:HyperLink ID="lnkCompany_Id" runat="server" Text='<%# Bind("Comp_CompanyId") %>' 
        NavigateUrl='<%# Eval("Comp_CompanyId","Persons.aspx?CompanyId={0}") %>'></asp:HyperLink> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="Comp_Name" HeaderText="Comp_Name" SortExpression="Comp_Name"></asp:BoundField> 
     <asp:BoundField DataField="Comp_Type" HeaderText="Comp_Type" SortExpression="Comp_Type"></asp:BoundField> 
     <asp:BoundField DataField="Comp_Status" HeaderText="Comp_Status" SortExpression="Comp_Status"></asp:BoundField> 
    </Columns> 
</asp:GridView> 
<asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString='<%$ ConnectionStrings:CRMConnectionString %>' SelectCommand="SELECT [Comp_CompanyId], [Comp_Name], [Comp_Type], [Comp_Status] FROM [Company]"></asp:SqlDataSource> 
Смежные вопросы