2013-10-08 62 views
0

我在一個頁面中有一個gridview如下。從Gridview獲取值到另一個頁面

<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" OnCheckedChanged="chk_CheckedChanged" /> 
             <asp:Label runat="server" ID="lblPID" Visible="false" Text='<%# Eval("PatientId") %>'></asp:Label> 
            </ItemTemplate> 

           </asp:TemplateField> 

           <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> 

現在,當用戶檢上覆選框同時我想從GridView中PatientId到另一個頁面,並進一步我想插入PatientId到SQL表。

感謝很多,如果有人給我的代碼

* 修訂:: *

我的Page_Load中的代碼是

if (!IsPostBack) { 
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; 
    Session[patientId] = patientId; 
    } 
    } 
} 
+2

把這個父id在一個會話變量,並在下一頁使用它/或者你可以傳遞它作爲查詢字符串,而去另一頁:) – Rex

+0

在頁面加載會話的位置? – Pratik

+0

你可以使用使用會話任何地方根據您的使用 – Rex

回答

1

你爲什麼不試試這個?

Session ["PatientID"] = YoureGridView.SelectedRow.Cells[indexOfPatientID].Text; 

本PatientID的值在會話當進入其它頁面上,你可以使用

Int PatientID = Convert.Toint16(Session["PatientID"]); 

在會話中檢索數據,或者如果它是一個字符串

string PatientID = Session["PatientID"].ToString(); 

好即時猜測,因爲你沒有提供足夠的信息,但這就是我如何編碼如果我要將數據傳輸到另一個網頁

在SQL插入並假設其TSQL我使用這樣的

 SqlCommand Update = new SqlCommand(); 
     Update.Connection = YourConnection; 
     Update.CommandType = CommandType.StoredProcedure; 
     Update.CommandText = "usp_YoureStoredProcedure"; 
     Update.Parameters.AddWithValue("@id", Convert.Toint16(Session["PatientID"])); //the convert varies on what data type you are using this is just an example 

那麼這又是剛剛的例子,如果你想有一個更明確的答案嘗試張貼或告訴我們更多。

+0

但是當我嘗試把會話[「PatientID」] = YoureGridView.SelectedRow.Cells [indexOfPatientID] .Text; – Pratik

+0

我無法獲取.Cells [indexOfPatientID] .Text ...因此,請問您可以告訴我哪些問題? – Pratik

+0

-_- ofcourse它不會工作,你需要在[indexOfPatientID]中插入你的患者ID索引,例如[1],[2] – user2705620

相關問題