使用查询字符串将gridview选择记录的ID传递到另一个页面

时间:2012-12-07 13:09:48

标签: c# asp.net sql query-string

我有一个启用选择的gridview,我还在其下添加了一个按钮,该按钮应该将用户带到另一个带有formview的页面,等待显示所选记录的完整信息。如何将ID作为查询字符串传递并在另一页的sqldatasource中使用它?

我的gridview有

ID
Name

表单视图将显示

ID
Name
Description
Uploader
Audience
Category

2 个答案:

答案 0 :(得分:2)

您可以使用<asp:HyperLinkField>

例如:

<asp:GridView ID="GridView1" runat="server">
   <Columns>
     <asp:HyperLinkField DataNavigateUrlFields="ID" 
         DataNavigateUrlFormatString="/detailsPage.aspx?id={0}"
        DataTextField="ID" HeaderText="ID" />
   </Columns>
</asp:GridView>

参见:

HyperLinkField Class:表示在数据绑定控件中显示为超链接的字段。

答案 1 :(得分:1)

您可以从所选行中获取值,并在回发后重定向。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.selectedrow.aspx

  Sub CustomersGridView_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
    Dim row As GridViewRow = CustomersGridView.SelectedRow
    Response.redirect(String.Format("detailsPage.aspx?id={0}", row.cells(x).text))
  End Sub

  void CustomersGridView_SelectedIndexChanged(Object sender, EventArgs e)
  {
     GridViewRow row = CustomersGridView.SelectedRow;
     Response.Redirect(String.Format("detailsPage.aspx?id={0}", row.cells[x].text));

  }

其中x是包含ID的单元格

在假定存储过程的详细信息页面上:

Dim aSource As New SqlDataSource
 aSource.ConnectionString = {your connection string})
 aSource.ProviderName = "System.Data.SqlClient"
 aSource.SelectCommand = {Your stored procedure name}
 aSource.SelectCommandType = SqlDataSourceCommandType.StoredProcedure
 aSource.SelectParameters.Add(New System.Web.UI.WebControls.Parameter("ID", Data.DbType.String, Request.QueryString(0)))

 SqlDataSource aSource;
 aSource.ConnectionString = {your connection string});
 aSource.ProviderName = "System.Data.SqlClient";
 aSource.SelectCommand = {Your stored procedure name};
 aSource.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
 aSource.SelectParameters.Add(New System.Web.UI.WebControls.Parameter("ID", Data.DbType.String, Request.QueryString[0]));

编辑:从看到你对另一个答案的回答:

我相当确定所选行也应该对您的提交功能可见。