-1

2 つの Telerik radListBoxes (ソースと宛先) があります。どちらも、DataKeyField と DataTextField の値が設定されたデータバインドです。宛先リストボックスには、前のセッションからの値が含まれている場合があります。

組み込みのボタンを使用してソース リストボックスから宛先リストボックスにアイテムを転送すると、値 (テキスト) が転送されていることがわかりますが、そのアイテムのデータキーは null です。

私はこれらのコントロールに慣れていませんが、これを除いてすべてがうまく機能しています。

<telerik:RadListBox runat="server" ID="rlAvailableTitles" Height="200px" Width="300px" ButtonSettings-AreaWidth="35px" 
    AllowTransfer="true" TransferToID="rlTitles" SelectionMode="Multiple" AppendDataBoundItems="true"
    AllowTransferOnDoubleClick="true" DataKeyField="TitleID" DataTextField="TitleName" CssClass="text-align: left;" AutoPostBackOnTransfer="true">
</telerik:RadListBox>
<telerik:RadListBox runat="server" ID="rlTitles" Height="200px" Width="300px" ButtonSettings-AreaWidth="35px"
    AllowTransfer="true" TransferToID="rlAvailableTitles" SelectionMode="Multiple" AppendDataBoundItems="true"
    AllowTransferOnDoubleClick="true" DataKeyField="TitleID" DataTextField="TitleName">
</telerik:RadListBox>

「保存」をクリックすると、次のようになります。

foreach (RadListBoxItem item in rlTitles.Items)
{
    string myTitleID = item.DataKey;
    // etc...
} 

ソースリストボックスのアイテムと一緒に保存されているデータキーを取得するために何が欠けていますか?

4

2 に答える 2

1

この特定の問題の解決策を見つけました。DataValueField="TitleID"aspx ファイルのソース radListBoxに追加しました。次に、私のコード ビハインドでは、宛先 radListBox で探している値が で利用可能ですitem.Value。振り返ってみると、かなり簡単に見えます。

于 2015-04-10T14:01:58.260 に答える
1

DataKey にはセッターがありません。

代わりに DataValueField を使用してください。

于 2015-09-09T19:58:08.007 に答える