2

次のように、SQLサーバーに2つのテーブルがあります

PatientDetail - 1st table name     
PatientId --- primary key
firstname
lastname

Patexam - 2nd table name
PId ---- foreign key of first table PatientId
Exam

以下のように、最初のテーブルのすべての列を表示するページに1つのグリッドビューがあります

<asp:GridView ID="gvDoctorList" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" AllowPaging="True" AllowSorting="True" AutoGenerateEditButton="true" AutoGenerateDeleteButton="true">
    <Columns>
        <asp:CommandField ShowSelectButton="True" />
        <asp:BoundField DataField="PatientId" HeaderText="PatientId" SortExpression="PatientId" />
        <asp:BoundField DataField="firstname" HeaderText="firstname" SortExpression="firstname" />
        <asp:BoundField DataField="lastname" HeaderText="lastname" SortExpression="lastname" />

        <asp:BoundField DataField="sex" HeaderText="sex" SortExpression="sex" />

    </Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyDatabaseConnectionString %>" SelectCommand="SELECT [PatientId],[firstname], [lastname], [sex],  FROM [PatientDetails]"></asp:SqlDataSource>

テキスト値 = "formatric3d" のボタンが 1 つあり、グリッドビューで 1 つの行を選択してからボタンをクリックすると、

value = "formatric3d",

patientidそのため、クリックイベントで、選択した行とbutton text value = "formatric3d"テーブル名 Patexamに挿入したいと考えています。

これは、gridviewPatientIdで選択されている PId が に等しく、試験が に等しいことを意味しbutton text value = "formatric3d"ます。

4

1 に答える 1

0

これはあなたが欲しいものですか?

      <asp:Button runat="server" ID="btnExam" Text="formatric3d" OnClick="Exam_ClickHandler" />
                <asp:GridView ID="gvDoctorList" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"
                    AllowPaging="True" AllowSorting="True" AutoGenerateEditButton="true" AutoGenerateDeleteButton="true">
                    <Columns>
                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:CheckBox runat="server" ID="chk" />
                                <asp:Label runat="server" ID="lblPID" Visible="false" Text='<%# Eval("PatientId") %>'></asp:Label>
                            </ItemTemplate>

                        </asp:TemplateField>
                        <asp:CommandField ShowSelectButton="True" />
                        <asp:BoundField DataField="PatientId" HeaderText="PatientId" SortExpression="PatientId" />
                        <asp:BoundField DataField="firstname" HeaderText="firstname" SortExpression="firstname" />
                        <asp:BoundField DataField="lastname" HeaderText="lastname" SortExpression="lastname" />
                        <asp:BoundField DataField="sex" HeaderText="sex" SortExpression="sex" />
                    </Columns>
                </asp:GridView>

      <h3>Patient Exams</h3>
            <asp:DataList runat="server" ID="dtlExams">
                <ItemTemplate>
                    <%#Eval("Exam") %>
                </ItemTemplate>
            </asp:DataList>
//////////////// tree view 
    <asp:TreeView runat="server" ID="tvExams">
        </asp:TreeView>

コードビハインドページ:

  protected void Exam_ClickHandler(object sender, EventArgs e)
    {
        foreach (GridViewRow row in gvDoctorList.Rows)
        {
            CheckBox chk = (CheckBox)row.FindControl("chk");
            if (chk.Checked)
            {
                string patientId = ((Label)row.FindControl("lblPID")).Text;
                string exam = ((Button)sender).Text;

                ///your insertion query goes here.
                ///

                GetPatientExams(patientId);
            }

        }
    }

    protected void Patient_ExamHandler(object sender, CommandEventArgs e)
    {
        string patientId = e.CommandArgument.ToString();
        GetPatientExams(patientId);


    }



  private void GetPatientExams(string pid)
{

    DataTable exams = "Get exam data from db by pid";

    dtlExams.DataSource = exams;
    dtlExams.DataBind();

//////////////// ツリー ビュー TreeNode tnnn;

    foreach (DataRow row in exams.Rows)
    {
        tnnn = new TreeNode(exams["PRODSHORT"].ToString());
        tvExams.Nodes.Add(tnnn);
    }

}
于 2013-10-07T12:33:02.217 に答える