2011-03-22 75 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(); 
} 
相关问题