我的数据网格绑定到 Sql-Server 数据库。数据网格显示每个房间的信息。我在 asp.net 的末尾添加了一个额外的列,其中显示了详细信息。用户单击所需房间旁边的详细信息,它应该打开该房间的新网页。但是可能存在一个问题,当用户寻找他们进行搜索的房间时,我怎样才能使它每次每个详细信息链接都链接到某个房间。
我现在在想我需要在那个 Sql 数据库房间表中添加一个新列来保存一个链接?这可能有人对此有解决方案吗?
我的数据网格绑定到 Sql-Server 数据库。数据网格显示每个房间的信息。我在 asp.net 的末尾添加了一个额外的列,其中显示了详细信息。用户单击所需房间旁边的详细信息,它应该打开该房间的新网页。但是可能存在一个问题,当用户寻找他们进行搜索的房间时,我怎样才能使它每次每个详细信息链接都链接到某个房间。
我现在在想我需要在那个 Sql 数据库房间表中添加一个新列来保存一个链接?这可能有人对此有解决方案吗?
您只需要向您的 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>
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();