1

データバインドされた繰り返しの値をセッション状態に保存したいと考えています。

これまでの私のコードは次のとおりです。

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<h1 id="price" class="QPrice">$<%# Eval("Price")%></h1>
</ItemTemplate>
</asp:Repeater>

コードビハインド」

Session("Qprice") = ?

コードビハインドから h1 要素の値を取得する方法、または SqlDatasource1 の特定の値を取得する方法を教えてください。

4

3 に答える 3

1

Session("Qprice"+ID) = (10 進数)drv.Row["価格"]; 最終的に、セッション内のすべての価格が得られ、リストにバインドされたデータの ID によってアクセスできます。ただし、アクセスできる情報を保存しています。

于 2012-05-08T13:47:30.207 に答える
0

最初にListを強く入力してSessionに保存するように保存します

Protected Sub Repeater1_ItemDataBound(sender As Object, e As RepeaterItemEventArgs)
    Dim repeaterItems As New List(Of Decimal)()

    If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
        Dim b As Button = TryCast(e.Item.FindControl("myButton"), Button)
        Dim drv As DataRowView = TryCast(e.Item.DataItem, DataRowView)


        repeaterItems.Add(CDec(drv.Row("Price")))
    End If


    Session("Qprice") = repeaterItems
End Sub

だから私は後で再びアクセスすることができます

Dim repeaterItemsFromSession As List(Of Decimal) = DirectCast(Session("Qprice"), List(Of Decimal))
于 2012-04-25T03:51:15.143 に答える
0

repeater1 でオブジェクト DatakeyNames="Price" を定義し、Item Data Bound イベントを指定してからコード ビハインドで指定します

protected void repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item 
                          || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
        Button b = e.Item.FindControl("myButton") as Button;  
        DataRowView drv = e.Item.DataItem as DataRowView; 
        Session("Qprice") = (decimal)drv.Row["Price"];
    } 
} 

ここで、値を保存したり、価格で好きなことをしたりできます。

于 2012-04-25T00:29:02.523 に答える