gpt4 book ai didi

c# - 有没有办法让 asp.net Boundfield 成为链接?

转载 作者:行者123 更新时间:2023-12-04 10:07:25 27 4
gpt4 key购买 nike

对不起,如果以前有人问过这个问题,但是我已经在论坛上搜索了很长时间,但无法找到解决我问题的方法。

我目前正在开发一个网络应用程序,用户可以在其中捐赠瓶装押金。当用户上传瓶子后,它们将显示在下表中:
Snippet of the table

数据显示在带有 SqlDataSource 的 GridView 中。编码:

<div class="table-responsive col-8">
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:WeCANConnectionString %>"
SelectCommand="SELECT [creator], [amount], [details],
[imageurl], [pickup], [available_from] FROM [deposit] ORDER BY [id] DESC"></asp:SqlDataSource>
<asp:GridView id="GridView1" class="table table-hover table-striped table-bordered" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="creator" HeaderText="Uploaded By" SortExpression="creator" />
<asp:BoundField DataField="amount" HeaderText="Amount" SortExpression="amount" />
<asp:BoundField DataField="details" HeaderText="Details" SortExpression="details" />
<asp:BoundField DataField="imageurl" HeaderText="Image" SortExpression="imageurl" />
<asp:BoundField DataField="pickup" HeaderText="Location of the bottles" SortExpression="pickup" />
<asp:BoundField DataField="available_from" HeaderText="Available from" SortExpression="available_from" />
</Columns>

</asp:GridView>

我希望能够单击每个单独的帖子并创建显示来自数据库的更多数据的动态页面。我在某处读到,我可以使用每个帖子的 ID 创建这些页面,但我找不到任何显示它如何工作的东西。

随时提出任何后续问题。这是我的第一篇文章,所以我不确定我是否已经涵盖了所有内容。

提前非常感谢。

最佳答案

一种方法是在每一行中添加一个链接。首先,您需要将“id”添加到 SELECT在您的数据源中,因此在绑定(bind)表时可以访问数据。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:WeCANConnectionString %>"
SelectCommand="SELECT [id], [creator], [amount], [details], [imageurl],
[pickup], [available_from] FROM [deposit] ORDER BY [id] DESC">
</asp:SqlDataSource>

然后在您的 GridView 中,使用超链接创建一个模板列,并让该超链接的 NavigateUrl 打开一个带有查询字符串 ID 的新页面。如果您不希望 ID 在 URL 中公开,您可能需要以某种方式对其进行模糊处理,或者在数据库中为每条记录使用 GUID 列。只要你能认出来。您的 NavigateUrl 可以是您想要的任何页面,但在此示例中,我使用了 DetailPage.aspx。
<asp:GridView id="GridView1" class="table table-hover table-striped table-bordered" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="DetailsLink" runat="server"
NavigateUrl="DetailPage.aspx?id=<%# Eval("id")%>"
Text="Details" Target="_blank">
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="creator" HeaderText="Uploaded By" SortExpression="creator" />
<asp:BoundField DataField="amount" HeaderText="Amount" SortExpression="amount" />
<asp:BoundField DataField="details" HeaderText="Details" SortExpression="details" />
<asp:BoundField DataField="imageurl" HeaderText="Image" SortExpression="imageurl" />
<asp:BoundField DataField="pickup" HeaderText="Location of the bottles" SortExpression="pickup" />
<asp:BoundField DataField="available_from" HeaderText="Available from" SortExpression="available_from" />
</Columns>
</asp:GridView>

<@# Eval('id')@> 会将每一行的 ID 呈现为 URL 中的查询字符串。

关于c# - 有没有办法让 asp.net Boundfield 成为链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61509610/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com