0

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

我的网格视图有

ID
Name

表单视图将显示

ID
Name
Description
Uploader
Audience
Category
4

2 回答 2

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 类:表示在数据绑定控件中显示为超链接的字段。

于 2012-12-07T13:25:25.563 回答
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]));

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

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

于 2012-12-07T13:33:33.340 回答