[英]Aspxgridview edit form Cascading DropDown
在ASPxGridView中,我有GridViewDataComboBoxColumn,其中在EditForm中。 文本字段和值字段均为字符串。 如果我从第一个下拉列表中选择值,则表示它不在第二个下拉列表中获取值,它将返回null值,我不知道该在哪里更改代码。
我从第一组合框中没有任何价值。 我没有任何错误。
请检查我的代码。
[C#]
protected void grdMaterialsFlow_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e)
{
if (e.Column.FieldName == "SKU")
{
DataSet ds = new DataSet();
FacilityId = ((DevExpress.Web.ASPxCallbackPanel)this.Page.Master.FindControl("cmpMastePageCallBackPanel")).FindControl("TitleContent").FindControl("cmbFacility") as DevExpress.Web.ASPxComboBox;
string val = FacilityId == null ? String.Empty : FacilityId.SelectedItem == null ? String.Empty : Convert.ToString(FacilityId.SelectedItem.Value);
ds = DBMethod.SelectSKUname(FacilityId.SelectedItem.Value.ToString());
ASPxComboBox cmb = e.Editor as ASPxComboBox;
SMgmt.PropddsUserRole = ds;
cmb.DataSource = ds;
cmb.ValueField = "SKU";
//cmb.ValueType = typeof(int);
cmb.TextField = "SKU";
cmb.DataBindItems();
}
if (e.Column.FieldName == "UOM")
{
var combo = (ASPxComboBox)e.Editor;
combo.Callback += new CallbackEventHandlerBase(cmbUOM_OnCallback);
var grid = e.Column.Grid;
if (!combo.IsCallback)
{
string SKU = "";
if (!grid.IsNewRowEditing)
SKU = (String)grid.GetRowValues(e.VisibleIndex, "SKU");
FillUOMCombo(combo, SKU);
}
}
}
protected void FillUOMCombo(ASPxComboBox cmb, String SKU)
{
FacilityId = ((DevExpress.Web.ASPxCallbackPanel)this.Page.Master.FindControl("cmpMastePageCallBackPanel")).FindControl("TitleContent").FindControl("cmbFacility") as DevExpress.Web.ASPxComboBox;
string val = FacilityId == null ? String.Empty : FacilityId.SelectedItem == null ? String.Empty : Convert.ToString(FacilityId.SelectedItem.Value);
DataSet ds = DBMethod.SelectUOMname((SKU), val);
cmb.DataSource = ds;
cmb.ValueField = "UOM";
cmb.ValueType = typeof(string);
cmb.TextField = "UOM";
cmb.DataBindItems();
}
void cmbUOM_OnCallback(object source, CallbackEventArgsBase e)
{
var UOM = -1;
Int32.TryParse(e.Parameter, out UOM);
FillUOMCombo(source as ASPxComboBox, UOM.ToString());
}
void cmbUOM_OnCallback(object source, CallbackEventArgsBase e)
{
ASPxComboBox combo = (ASPxComboBox)source;
FillUOMCombo(combo, e.Parameter);
}
此方法用于在组合框中获取文本
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.