DevExpress ASPxComboBox SelectItem为null
|
我有一个ASPxComboBox,可以根据用户输入正确进行过滤。现在,我要将所选项目保存到数据库。但是,当我尝试获取SelectedItem时,它为null。
均价
<dxe:ASPxComboBox ID=\"cboInstructor\" runat=\"server\" Width=\"100%\"
EnableCallbackMode=\"True\" CallbackPageSize=\"10\"
IncrementalFilteringMode=\"Contains\" ValueType=\"System.Int32\" ValueField=\"employee_id\"
OnItemsRequestedByFilterCondition=\"cboInstructor_OnItemsRequestedByFilterCondition_SQL\"
OnItemRequestedByValue=\"cboInstructor_OnItemRequestedByValue_SQL\" TextFormatString=\"{0} {1}\"
DropDownStyle=\"DropDown\"
>
<Columns>
<dxe:ListBoxColumn FieldName=\"display_forename\" Caption=\"Forename\" />
<dxe:ListBoxColumn FieldName=\"display_surname\" Caption=\"Surname\" />
</Columns>
</dxe:ASPxComboBox>
<asp:SqlDataSource ID=\"SqlDataSourceInstruct\" runat=\"server\" ConnectionString=\"Server=testserver;User ID=root;Password=password;Persist Security Info=True;Database=central\" ProviderName=\"MySql.Data.MySqlClient\" SelectCommand=\"GetUser\" SelectCommandType=\"StoredProcedure\">
<SelectParameters>
<asp:Parameter Name=\"filter\" Type=\"String\" />
<asp:Parameter Name=\"startIndex\" Type=\"Int32\" />
<asp:Parameter Name=\"endIndex\" Type=\"Int32\" />
</SelectParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID=\"SqlDataSourceInstructPopulate\" runat=\"server\" ConnectionString=\"Server=testserver;User ID=root;Password=password;Persist Security Info=True;Database=central\" ProviderName=\"MySql.Data.MySqlClient\" SelectCommand=\"GetUser\" SelectCommandType=\"StoredProcedure\">
</asp:SqlDataSource>
<asp:Button ID=\"btnTest\" runat=\"server\" Text=\"Test\" OnClick=\"btnTest_Click\" />
CS
protected void Page_Load(object sender, EventArgs e)
{
}
protected void cboInstructor_OnItemsRequestedByFilterCondition_SQL(object source, ListEditItemsRequestedByFilterConditionEventArgs e)
{
ASPxComboBox comboBox = (ASPxComboBox)source;
SqlDataSourceInstruct.SelectParameters.Clear();
SqlDataSourceInstruct.SelectParameters.Add(\"filter\", TypeCode.String, string.Format(\"%{0}%\", e.Filter));
SqlDataSourceInstruct.SelectParameters.Add(\"startIndex\", TypeCode.Int32, (e.BeginIndex + 1).ToString());
SqlDataSourceInstruct.SelectParameters.Add(\"endIndex\", TypeCode.Int32, (e.EndIndex + 1).ToString());
comboBox.DataSource = SqlDataSourceInstruct;
comboBox.DataBind();
}
protected void cboInstructor_OnItemRequestedByValue_SQL(object source, ListEditItemRequestedByValueEventArgs e)
{
long value = 0;
if (e.Value == null)
return;
if (!Int64.TryParse(e.Value.ToString(), out value))
return;
ASPxComboBox comboBox = (ASPxComboBox)source;
SqlDataSourceInstructPopulate.SelectCommand = @\"SELECT employee_id, display_surname, display_forename FROM user_record WHERE employee_id = @ID ORDER BY display_forename\";
SqlDataSourceInstructPopulate.SelectCommandType = System.Web.UI.WebControls.SqlDataSourceCommandType.Text;
SqlDataSourceInstructPopulate.SelectParameters.Clear();
SqlDataSourceInstructPopulate.SelectParameters.Add(\"ID\", TypeCode.Int64, e.Value.ToString());
comboBox.DataSource = SqlDataSourceInstructPopulate;
comboBox.DataBind();
comboBox.ValueField = \"employee_id\";
}
protected void btnTest_Click(object sender, EventArgs e)
{
int iTest = (int)cboInstructor.SelectedItem.GetValue(\"employee_id\");
}
在此行:
int iTest = (int)cboInstructor.SelectedItem.GetValue(\"employee_id\");
cboInstructor.SelectedItem
为空。有人知道为什么吗?
没有找到相关结果
已邀请:
2 个回复
丧泉缝锋
辩谷变充
理想情况下,您将拥有一个重新加载ASPxComboBox的方法,并且只需调用该方法即可,而不必每次都重复此代码