C# 设置值或SelectedIndex功能在AspxComboBox中不起作用
在我的母版页中,我在C# 设置值或SelectedIndex功能在AspxComboBox中不起作用,c#,asp.net,combobox,devexpress,C#,Asp.net,Combobox,Devexpress,在我的母版页中,我在aspx菜单项的模板标记中有一个aspx对话框,我可以在任何aspx页面上访问它,但当我尝试设置它的值或选择索引时,会更改而不更新 <dx:MenuItem> <Template> <dx:ASPxComboBox ID="CbalarmSelect" runat="server" AutoPostBack="true" ViewStateMode="Enabled" OnSelectedIndex
aspx菜单
项的模板
标记中有一个aspx对话框
,我可以在任何aspx
页面上访问它,但当我尝试设置它的值或选择索引时,会更改而不更新
<dx:MenuItem>
<Template>
<dx:ASPxComboBox ID="CbalarmSelect" runat="server" AutoPostBack="true" ViewStateMode="Enabled" OnSelectedIndexChanged="cbalarmselect_changed">
<Items>
<dx:ListEditItem Text="Select Option" Selected="true" Value="0" />
<dx:ListEditItem Text="Sample" Value="1" />
<dx:ListEditItem Text="Demo" Value="2" />
</Items>
</dx:ASPxComboBox>
</Template>
</dx:MenuItem>
出于测试目的,我将其可见性设置为falsecombo.Visible=false代码>但它是可见的均值集功能不工作客户端脚本
将ClientInstanceName属性指定给ComboboxName以访问它的客户端,将ID属性指定为cbxJobType以访问控制服务器端
// by text
comboBox.SetText('Text #2');
// by value
comboBox.SetValue('Value #2');
// by index
comboBox.SetSelectedIndex(1);
服务器端代码
// by text
cbalarmSelect.Text = "Text #2";
// by value
cbalarmSelect.Value = "Value #2";
// by index
cbalarmSelect.SelectedIndex = 1;
此代码也可以正常工作:
cbalarmSelect.SelectedItem = cbalarmSelect.Items.FindByValue("Value #2");
在页面加载
事件期间,我试图设置SelectedIndex
,但它不起作用。然后我将代码移动到页面加载完成
事件中,它对我起作用
void Page_LoadComplete(object sender, EventArgs e)
{
ASPxMenu item = (ASPxMenu)Master.FindControl("ASPxMenu1");
ASPxComboBox combo = (ASPxComboBox)item.Items.FindByName("AlarmSubscription").FindControl("CbalarmSelect");
combo.SelectedIndex =1 ;
}
我想用C设置它,因为我有另一个组合框,其中C必须像语言组合框,如果我选择英语,那么我将如何在所有页面上永久设置它?解决问题的关键是了解页面生命周期是如何工作的。页面代码始终在母版页代码之前运行,因此页面代码隐藏中的任何更改都将被母版页代码隐藏覆盖(如果存在)。如果您有主控代码,请在问题中显示它(包括与主控ASPxComboBox
相关的方法)。母版页中没有与此ASPxComboBox
相关的代码,仅在其更改事件中我使用此项检查其所选索引@tetsuyayayamamoto
void Page_LoadComplete(object sender, EventArgs e)
{
ASPxMenu item = (ASPxMenu)Master.FindControl("ASPxMenu1");
ASPxComboBox combo = (ASPxComboBox)item.Items.FindByName("AlarmSubscription").FindControl("CbalarmSelect");
combo.SelectedIndex =1 ;
}