ASP.Net DatagridView选择链接到页面



我的数据网格绑定到Sql Server数据库。数据网格显示每个房间的信息。我在asp.net的末尾添加了一个额外的专栏,上面写着Details。用户单击所需房间旁边的详细信息,应该会打开该房间的新网页。然而,可能会有一个问题,当用户查找房间时,他们会进行搜索,我如何才能做到每次详细信息链接都链接到某个房间。

我现在想,我真的需要在Sql数据库房间表中添加一个新列,也许可以保存一个链接?有人能解决这个问题吗。

您只需要在网格视图中添加一个超链接字段

在DataNavigateUrlFormatString属性中,您将把模板地址写入详细信息页面例如"Details.aspx?id={0}",并且在DataNavigateUrlFields中,您将写入包含行id的DB列的名称。ID字段的内容将自动替换DataNavigateUrlFormatString 的{0}部分

MSDN示例:

<columns>
  <asp:boundfield datafield="OrderID" 
    headertext="OrderID"/>
  <asp:boundfield datafield="CustomerID" 
    headertext="Customer ID"/>
  <asp:boundfield datafield="OrderDate" 
    headertext="Order Date"
    dataformatstring="{0:d}" />
  <asp:hyperlinkfield text="Details..."
    navigateurl="~details.aspx"            
    headertext="Order Details"
    target="_blank" />
</columns>

aspx页面:

<asp:Label ID="lblRoomName" runat="server"></asp:Label>

代码背后:

string strRoomId = Request.QueryString["Id"].ToString();
SqlConnection sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconstr"].ConnectionString);
SqlCommand sqlcommand = new SqlCommand("Select * from RoomDetails where RoomId = @RoomId", sqlCon);
sqlcommand.Parameters.AddWithValue("@RoomId", strRoomId);
SqlDataAdapter da = new SqlDataAdapter(sqlcommand);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();

最新更新