如何在Gridview中选择一行后显示数据库中的数据



我有一个带有HyperLinkField的Databound Gridview,用于查看重定向到下一页的行信息。网格视图中显示的列只是我数据库中的一小部分,我希望整个数据库数据,包括网格视图中未显示的数据,都能显示在下一页上。

我已经尝试使用DataNavigateUrlFields,但这将只显示GridView中的记录。

以下是我的代码的一些部分

<asp:GridView ID="gvStock" CssClass="GV" runat="server" enablepagingandcallbackz="false" AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True" OnSorting="OnSorting" OnPageIndexChanging="OnPageIndexChanging"  PageSize="20" BackColor="#CCCCCC" BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="4" CellSpacing="2" ForeColor="Black">
<Columns>
<asp:HyperLinkField Text="View" DataNavigateUrlFields="pCode,pID,bCode,SBrand,SDescription,sCost,sPrice,SType,sSupplierName,sSupplierDirect" DataNavigateUrlFormatString="ProductDetail.aspx?pCode={0}&pID={1}&bCode={2}&SBrand={3}&SDescription={4}&sCost={5}&sPrice={6}&SType={7}&sSupplierName={8}&sSupplierDirect={9}"/>
<asp:BoundField DataField="pCode" HeaderText="Product Code" />
<asp:BoundField DataField="pID" HeaderText="PID"/>
</Columns>
</asp:GridView>

背后的代码

protected void gvStock_SelectedIndexChanged(object sender, EventArgs e)
{
string id = gvStock.SelectedRow.Cells[0].Text;
Response.Redirect("ProductDetail.aspx?");
}

我给你举一个例子。。。所以,你很容易理解。。。。应用您的逻辑。。。在您的代码中。。。

.aspx页面

<asp:GridView ID="grdTesting" runat="server" AutoGenerateColumns="false" Width="98%">
<Columns>
<asp:TemplateField HeaderText="Job Number">
<ItemTemplate>
<asp:LinkButton ID="lnkTest" runat="server" Text='<% # Bind("Test") %>' ToolTip='<%# Bind("Test") %>'
OnClick="lnkTest_Click"></asp:LinkButton>
<asp:HiddenField ID="hdnId" runat="server" Value='<% # Bind("Id") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

.aspx.cs页面

protected void lnkTest_Click(object sender, EventArgs e)
{
GridViewRow gvr = (GridViewRow)((Control)sender).Parent.Parent;
HiddenField hdnId = (HiddenField)gvr.FindControl("hdnId");
if(Convert.ToString(hdnId.value)=="1")
{
Response.Redirect("frmTest1.aspx?Id=" + Convert.ToString(hdnId.Value), false);
}
else if(Convert.ToString(hdnId.value)=="2")
{
Response.Redirect("frmTest2.aspx?Id=" + Convert.ToString(hdnId.Value), false);
}
else
{
Response.Redirect("frmTest.aspx?Id=" + Convert.ToString(hdnId.Value), false);
}
}

注意:-

在页面加载中,您必须绑定GridView(根据您的偏好..(

假设,你有一个带有链接按钮的网格视图(重定向到不同的页面…(

所以,你还必须绑定Id……这样才能根据你的Id重定向到不同的页面…

点击链接按钮后,您可以重定向到其他页面(根据您的逻辑..(,并发送查询字符串值(Id(

我使用的是带有c#4.5 的asp.net

最新更新