c# – 如何以编程方式将RadComboBox与数据源设置为AutomaticLoad
我正在使用RadComboBox.在我的代码中,我将选定的值设置为RadComboBox,如下所示:
public void RCB_PO_NUM_DataBound(object sender,EventArgs e) { var itemRCB_PO_NUM = RCB_PO_NUM.FindItemByText(stringPO_NUM); itemRCB_PO_NUM.Selected = true; itemRCB_PO_NUM.Value = stringPO_NUM; } 我从我的数据库中选择一个数字列表,并在RadComboBox中显示它们.所以我必须使用DataBound事件来获取数据. 这很好用,直到我将AutomaticLoadOnDemand属性设置为true.一旦我这样做,我使用AutomaticLoadOnDemand属性获得我想要的效果,然后失去将我的RadComboBox设置为选定值的能力. 我需要能够做到这两点,AutomaticLoadOnDemand真的有助于加载RadComboBox中的项目以加载非常快.代码不必在DataBound事件中.我真的不在乎它是什么事件,只要两个都工作.有些人可以告诉我用什么方法将AutomaticLoadOnDemand属性设置为true,或者我做错了什么? 解决方法
当您使用LoadOnDemand时,您的组合框不会被绑定,直到用户尝试展开它.所以你不能使用DataBound事件.
我不确定你的用例是什么.如果您只想向用户显示所选项目,则可以在Page_Load事件中尝试组合框的Text属性. protected void Page_Load(object sender,EventArgs e) { itemRCB_PO_NUM.Text = stringPO_NUM; } 如果你真的需要选择项目,那么你可以添加单项服务器端(抱歉我现在无法测试) protected void Page_Load(object sender,EventArgs e) { itemRCB_PO_NUM.Items.Add(new RadComboBoxItem() { Value = stringPO_NUM,Text= stringPO_NUM,Selected = true }) } 编辑:
所以你可以尝试使用它: protected void RadComboBox1_ItemDataBound(object o,RadComboBoxItemEventArgs e) { DataRowView dataSourceRow = (DataRowView) e.Item.DataItem; if(e.Item.Text == stringPO_NUM) { e.Item.Selected = true; e.Item.Value = stringPO_NUM; } } 但是对我来说可疑的是,在评论中提供的屏幕上我可以看到你的字符串stringPO_NUM具有空值.我认为这可能是GetItemByText没有向您返回项目的原因. 如果您要指定为什么需要选择此项,那么它也会有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |