我有一个启用了选择的gridview,我还在它下面添加了一个按钮,该按钮应该将用户带到另一个页面,formview 等待显示所选记录的完整信息。如何将 ID 作为查询字符串传递并在其他页面的 sqldatasource 中使用它?
我的网格视图有
ID
Name
表单视图将显示
ID
Name
Description
Uploader
Audience
Category
我有一个启用了选择的gridview,我还在它下面添加了一个按钮,该按钮应该将用户带到另一个页面,formview 等待显示所选记录的完整信息。如何将 ID 作为查询字符串传递并在其他页面的 sqldatasource 中使用它?
我的网格视图有
ID
Name
表单视图将显示
ID
Name
Description
Uploader
Audience
Category
您可以使用<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 类:表示在数据绑定控件中显示为超链接的字段。
您可以从所选行中获取值并在回发时重定向。
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]));
编辑:从看到您对另一个答案的回复:
我相当确定所选行也应该对您的提交功能可见。