我有两个组合和一个按钮。基于父组合键值的子组合键填充。单击父组合体值将改变子组合框,单击按钮显示那些组合框选定的文本,我可以在我的合成器中这样做。我使用北风数据库。
<div>
<dx:ASPxComboBox ID="ASPxComboBoxParent" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ASPxComboBoxParent_SelectedIndexChanged"
TextField="ShipName" ValueField="OrderID" ValueType="System.Int32">
</dx:ASPxComboBox>
<dx:ASPxComboBox ID="ASPxComboBoxChild" runat="server" TextField="ProductID" ValueField="OrderID"
ValueType="System.Int32">
</dx:ASPxComboBox>
<dx:ASPxButton ID="ASPxButton1" runat="server" OnClick="ASPxButton1_Click" Text="ASPxButton">
</dx:ASPxButton>
<dx:ASPxLabel ID="ASPxLabelMessage" runat="server">
</dx:ASPxLabel>
</div>C#语法
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
NorthwindDataContext db=new NorthwindDataContext();
var r=from p in db.Orders
select p;
ASPxComboBoxParent.DataSource = r;
ASPxComboBoxParent.DataBind();
}
}
protected void ASPxComboBoxParent_SelectedIndexChanged(object sender, EventArgs e)
{
NorthwindDataContext db=new NorthwindDataContext();
int a= Convert.ToInt32( ASPxComboBoxParent.SelectedItem.Value);
var r = from p in db.Order_Details
where p.OrderID == a
select p;
ASPxComboBoxChild.DataSource = r;
ASPxComboBoxChild.DataBind();
ASPxComboBoxChild.SelectedIndex = 1;
}
protected void ASPxButton1_Click(object sender, EventArgs e)
{
ASPxLabelMessage.Text = "Parent is" + Convert.ToString(ASPxComboBoxParent.SelectedItem.Text) + "And child is" + Convert.ToString(ASPxComboBoxChild.SelectedItem.Text);
}单击父组合框后,子组合框填充,但单击按钮总是得到子组合键index=0值事件。我更改子组合框值。为什么不更改按钮事件上的值?如果有任何查询,请提前询问me.thanks。
发布于 2010-09-05 22:33:28
出现此问题是因为ASPxComboBoxChild.ValueField属性指向包含相同值的值。也就是说,当更改ASPxComboBoxParent所选索引时,ASPxComboBoxChild的Items集合中填充了值属性相同的项。由于ASPxComboBox按其值来区分项目,因此出现了问题。解决办法很简单:
<dx:ASPxComboBox ID="ASPxComboBoxChild" runat="server" TextField="ProductID" ValueField="ProductID"
ValueType="System.Int32">
</dx:ASPxComboBox>https://stackoverflow.com/questions/3646515
复制相似问题