我有两个Telerik radListBoxes(源和目标)。两者都是数据绑定,其DataKeyField和DataTextField值设置。目标列表框可能具有来自先前会话的一些值。
当我使用内置按钮将项目从源列表框传输到目标列表框时,我可以看到值(文本)被转移,但该项目的数据键为空。
我对这些控件不熟悉,除此之外一切都运行良好。
<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>
点击&#39;保存&#39;:
foreach (RadListBoxItem item in rlTitles.Items)
{
string myTitleID = item.DataKey;
// etc...
}
我缺少什么来获取与源列表框中的项目一起存储的datakey?
答案 0 :(得分:1)
我找到了解决这个特殊问题的方法。我将DataValueField="TitleID"
添加到aspx文件中的源radListBox。然后在我的代码后面,item.Value
中提供了我在目标radListBox中查找的值。回想起来似乎很直接。
答案 1 :(得分:1)
DataKey没有setter。
改为使用DataValueField。