2016-06-12 2 views
0

Я создаю сайт, чтобы пользователь мог войти в систему и получить доступ к своим собственным данным (через сеанс). До сих пор, когда они регистрируются и проходят проверку подлинности, они перенаправляются на страницу пользователя и могут видеть свои собственные данные (в этом случае пациенты видят свои лекарства). Я хочу предоставить кнопку, которая соответствует лекарству, и позволяет пользователю выбирать лекарство, чтобы я мог использовать его в процесс заказа (если он выбран, а затем вставить в таблицу) - я не уверен, как это сделать.Как добавить кнопку для выбора опции в gridview в asp.net

Из базы данных есть таблица пациента (все таблицы все составлявшие фиктивные данные):

Patient

лекарство таблица:

medicine

И таблица ссылка, которая соединяет пациента со своими конкретными лекарствами:

link

Это код, который выводит таблицу, показывающую пациентов принадлежит особое лекарство на странице пользователя:

user.aspx

<asp:Content ID="Content3" ContentPlaceHolderID="contentbody" runat="Server" Inherits="Pages_user" CodeFile="Pages_user.aspx.vb"> 

<p> 
    <span class="auto-style2">Please Select Your Medication&nbsp;&nbsp;&nbsp; 
    </span> 

</p> 

<asp:GridView ID="GridView1" runat="server" ></asp:GridView> 

</asp:Content> 

user.aspx.vb:

Partial Class Pages_user 
Inherits System.Web.UI.Page 

Sub Page_Load(ByVal Sender As System.Object, ByVal e As System.EventArgs) 

    If Not IsPostBack Then 
     Dim conn As New System.Data.SqlClient.SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Laura\Final_proj\App_Data\surgerydb.mdf;Integrated Security=True;Connect Timeout=30") 
     Dim cmdstring As String = "SELECT pt.PatientId, pt.ForeName, pt.Username, md.Name, md.Purpose, md.Instrcutions " + 
            "FROM Patient pt INNER JOIN prescription pr ON pt.PatientId = pr.PatientId " + 
            "INNER JOIN medicine md ON md.MedicineId = pr.MedicineId Where pt.PatientId = @PatientId" 
     Dim dt As New System.Data.DataTable() 
     Dim da As New System.Data.SqlClient.SqlDataAdapter(cmdstring, conn) 
     da.SelectCommand.Parameters.Add("@PatientId", System.Data.SqlDbType.Int).Value = CInt(Session("PatientId").ToString()) 
     conn.Open() 
     da.Fill(dt) 
     conn.Close() 

     GridView1.DataSource = dt 
     GridView1.DataBind() 
    End If 

End Sub 

Это то, что появляется, когда пользователь входит в систему (и ive рисуется на том, что я хочу отобразить также):

enter image description here

Я надеюсь, что кто-то может помочь застрял на этом за уныние.

ответ

0

Добавьте следующий к вам сетку, например, так:

<asp:GridView ID="GridView1" runat="server"> 
<Columns> 
<asp:CommandField ShowSelectButton="True" /> 
</Columns> 
</asp:GridView> 

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

+0

Пожалуйста, не добавляйте 2 отдельных ответа. Измените исходный, чтобы включить изменения. – Codexer

+0

Это работает! Добавлен столбец выбора, однако другая часть вопросов была связана с тем, как это связано с строкой - будет ли эта строка признавать, что этот элемент из базы данных выбран и что такое datakey? Извиняюсь, что я новичок. Я отметил ваш ответ и даю ему голосование – laurajs

+0

Datakey похож на скрытый столбец. он не отображается, но может быть доступен через свойство datakey сетки (это может быть поле вашей строки id) можно добавить более одного набора данных. то, что он делает, это хранить идентификатор элемента или другую информацию, которую вы не обязательно хотите видеть пользователю, которая может быть передана на запросы и тому подобное. быстрый поиск даст более подробную информацию. – Dwight

0

Редактируйте столбцы сетки и добавьте поле команды выбора, или вы можете добавить поле кнопки и интерпретировать событие щелчка.

+0

кнопка должна быть подключена к таблице - я могу редактировать таблицу через базу данных, чтобы сделать это? – laurajs

+0

Если вы хотите, чтобы кнопка выбирала строку, ее не нужно подключать к таблице только сеткой, добавьте поле команды выбора, которое выделит выбранную строку при нажатии. для этого в сетке щелкните по столбцам редактирования. – Dwight

+0

Hi dwight, извините, я новичок в этом, у вас есть код или пример того, как это сделать? – laurajs

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