現在、ASP.NETにDetailsViewがあり、QueryStringを介して渡されたIDに基づいてデータベースからデータを取得しています。私が今やろうとしているのは、ユーザーがButtonFieldまたはHyperLinkFieldのいずれかをクリックしたときに作成される新しいCookieで同じIDを使用することです。
私が.aspxに持っているのはこれです:
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="ArtID"
DataSourceID="AccessDataSource1" Height="50px" Width="125px">
<Fields>
<asp:ImageField DataAlternateTextField="Title" DataImageUrlField="FileLocation">
</asp:ImageField>
<asp:BoundField DataField="ArtID" HeaderText="ArtID" InsertVisible="False" ReadOnly="True"
SortExpression="ArtID" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:BoundField DataField="ArtDate" HeaderText="ArtDate" SortExpression="ArtDate" />
<asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
<asp:BoundField DataField="FileLocation" HeaderText="FileLocation" SortExpression="FileLocation" />
<asp:BoundField DataField="Medium" HeaderText="Medium" SortExpression="Medium" />
<asp:BoundField DataField="Location" HeaderText="Location" SortExpression="Location" />
<asp:BoundField DataField="PageViews" HeaderText="PageViews" SortExpression="PageViews" />
<asp:HyperLinkField DataNavigateUrlFields="ArtID" DataNavigateUrlFormatString="Purchase.aspx?ArtID={0}"
NavigateUrl="Purchase.aspx" Text="Add To Cart" />
<asp:ButtonField ButtonType="Button" DataTextField="ArtID" Text="Add to Cart" CommandName="btnAddToCart_Click" />
</Fields>
</asp:DetailsView>
次のようなレギュラーasp.netボタンを使用する場合:
<asp:Button ID="btnAddArt" runat="server" Text="Add To Cart" />
私はVBでこのようなものを持っているでしょう:
Protected Sub btnAddArt_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAddArt.Click
Dim CartArtID As New HttpCookie("CartArtID")
CartArtID.Value = ArtID.DataField
CartArtID.Expires = Date.Today.AddDays(0.5)
Response.Cookies.Add(CartArtID)
Response.Redirect("Purchase.aspx")
End Sub
ただし、ButtonFieldではIDを指定できないため、これをButtonFieldに適用する方法がわかりません。
Cookieに追加する必要のあるIDは、最初のBoundFieldのArtIDです。
私がこれをどのように行うかについてのアイデア/アドバイスは大歓迎です!
あるいは、HyperLinkFieldまたは通常のボタンを使用してそれを行うことができれば、それは同じように良いでしょうが、通常のボタンを使用してDetailsView内のIDにアクセスするのに問題があります。
ありがとう