1

我的数据网格绑定到 Sql-Server 数据库。数据网格显示每个房间的信息。我在 asp.net 的末尾添加了一个额外的列,其中显示了详细信息。用户单击所需房间旁边的详细信息,它应该打开该房间的新网页。但是可能存在一个问题,当用户寻找他们进行搜索的房间时,我怎样才能使它每次每个详细信息链接都链接到某个房间。

我现在在想我需要在那个 Sql 数据库房间表中添加一个新列来保存一个链接?这可能有人对此有解决方案吗?

4

2 回答 2

2

您只需要向您的 gridview 添加一个超链接字段

在 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>

于 2012-09-03T09:48:54.217 回答
1

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();
于 2012-09-03T11:51:12.947 回答