0

在 AspxGridView 中有两个手动加载的 DataItemTemplate 组合框。因此,当用户选择第一个组合的一个字段时,第二个将被禁用,我写道:

<dxe:ASPxComboBox ID="cmbEqualNotEqual" runat="server" 
                                                ClientInstanceName="cmbCEqualNotEqual" EnableClientSideAPI="true">
                                                <Items>
                                                    <dxe:ListEditItem Text=" " Value="0" />
                                                    <dxe:ListEditItem Text="Eşittir" Value="1" />
                                                    <dxe:ListEditItem Text="Eşit Değildir" Value="0" />
                                                </Items>
                                                <ClientSideEvents SelectedIndexChanged="function(s,e){
                                                    alert(s.GetEnabled());
                                                    var selectedIndex = s.GetSelectedIndex();
                                                    if(selectedIndex == 2)
                                                    {
                                                        cmbCBiggerSmaller.SetEnabled(false);
                                                    }
                                                }" />
                                            </dxe:ASPxComboBox> 

但是这段代码禁用了最后一行的组合,而不是用户工作的行。如何禁用行用户工作?

谢谢

4

2 回答 2

3

我为自己回答:

 for (int i = 0; i < grid.VisibleRowCount; i++)
  {
     ASPxComboBox combito = grid.FindRowCellTemplateControl(i, grid.Columns[2] as GridViewDataColumn, "combito") as ASPxComboBox;
     //combito.Value  
  }
于 2012-09-21T15:15:30.223 回答
0

出现问题是因为 ClientInstanceName 属性为同一列中的所有编辑器设置为相同的值。一种可能的解决方案是处理 ASPxGridView 的 HtmlRowCreated 事件并将两个编辑器的 ClientInstanceName 设置为唯一值。此外,在此事件处理程序中,您应该编写客户端 SelectedIndexChanged 事件处理程序。最后,要获取编辑器实例,请使用 ASPxGridView 的 FindRowCellTemplateControl 方法。

此外,以下文章可能对您有所帮助:

http://www.devexpress.com/Support/Center/ViewKBIssue.aspx?kbid=K18282

于 2010-07-30T12:29:13.380 回答