2011-03-22 81 views
2

我有一個GridView這正顯示出一些數據:傳遞值時選擇在GridView控件到另一個頁面

ENTITY_ID(PK)
名稱
說明

現在我在幫助選擇我的GridView。我需要將Entity_ID傳遞給另一個頁面,並且在此頁面中顯示更多此Entity_ID的內容。

我應該如何挑選Entity_ID值並將其作爲查詢字符串傳入?我有這個代碼:

ProductsDataGridView.SelectedRows(0).Cells(1).Value.ToString() 

任何反應將不勝感激!謝謝。

回答

2

這是我做過什麼:

protected void gvAgentList_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     GridViewRow row = gvAgentList.SelectedRow; 
     Response.Redirect("~/FrontEnd/Registration.aspx? EntityID=" + row.Cells[0].Text); 
    } 
6

在您的網格中添加新的項目模板列,並添加如下的選擇鏈接。

<asp:TemplateField HeaderText="View Details"> 
<ItemTemplate> 
    <asp:HyperLink ID="lnkSelect" runat='server' NavigateUrl='<%# String.Format("~/detailspagename.aspx?ID={0}", Eval("Entity_ID")) %>'>Select</asp:HyperLink> 
</ItemTemplate> 

+0

我喜歡你的想法更多。 – m4tt1mus 2011-03-22 16:00:53

+0

它給了我錯誤:這個名字包含不允許的大寫字母。 – 2011-03-22 16:09:23

+0

@ klm9971:你如何在你的頁面中使用它? – MUS 2011-03-22 16:12:22

1

使用OnRowSelected事件。一旦它調用你可以得到選定的行然後是實體ID。接下來,您可以使用查詢字符串中的實體ID以及該頁面的response.redirect構建一個字符串。

+0

沒有事件叫做OnRowSelected。試過了。 – 2011-03-22 16:31:37

+0

@ klm9971是的,我的意思是SelectedIndexChanged。 OnRowSelected僅在某些第三方控件中可用。我的錯。 – m4tt1mus 2011-03-22 16:41:48

+0

感謝兄弟,它的工作。將您的答案標記爲YES。 – 2011-03-22 16:58:32

0

您還可以使用DataKeys 設置DataKeys='Entity_ID'

在後面的代碼,你可以是一個你選擇的訪問一樣selectedrow.DataKeys[rowindex]["Entity_ID"]

這裏選擇行和rowIndex的指數,你會得到相應的ENTITY_ID

0

@GSGuy:

<asp:GridView runat ="server" ID = "gvAgentList" 
      AllowPaging = "True" 
      AutoGenerateSelectButton="True" AllowSorting="True" BackColor="#E8E8E8" 
      BorderColor="#003399" BorderStyle="Solid" BorderWidth="1px" Height="375px" 
      Width="823px" AutoGenerateColumns="False" 
      DataKeyNames="ID" DataSourceID="SqlDataSource1" onselectedindexchanged="gvAgentList_SelectedIndexChanged"> 


     <AlternatingRowStyle ForeColor="#0066CC" /> 
     <Columns> 

      <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
       ReadOnly="True" SortExpression="ID" /> 
      <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> 
      <asp:BoundField DataField="Description" HeaderText="Description" 
       SortExpression="Description" /> 

<asp:TemplateField HeaderText="View Details"> 
<ItemTemplate> 
    <asp:HyperLink ID="lnkSelect" runat='server' NavigateUrl='<%# String.Format("~/detailspagename.aspx?ID={0}", Eval("Entity_ID")) %>'>Select</asp:HyperLink> 
</ItemTemplate> 

     </Columns> 
     <HeaderStyle ForeColor="#3366FF" /> 

    </asp:GridView> 
0
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    string fname, lname; 
    fname = GridView1.Rows[e.NewEditIndex].Cells[0].Text; 
    Session["fname"] = fname; 
    lname = GridView1.Rows[e.NewEditIndex].Cells[1].Text; 
    Session["lname"] = lname; 
    Response.Redirect("gridpass.aspx"); 
} 

在gridpass.aspx.cs

protected void Page_Load(object sender, EventArgs e) 
{ 
    TextBox1.Text = Session["fname"].ToString(); 
    TextBox2.Text = Session["lname"].ToString(); 
} 
相關問題