Combobox в DataItemTemplate - PullRequest
       29

Combobox в DataItemTemplate

0 голосов
/ 29 июля 2010

В 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> 

Но этот код отключает комбо в последней строке, а не в строке, над которой работает пользователь. Как я могу отключить строку, на которой работает пользователь?

Спасибо

Ответы [ 2 ]

3 голосов
/ 21 сентября 2012

Я отвечаю за себя:

 for (int i = 0; i < grid.VisibleRowCount; i++)
  {
     ASPxComboBox combito = grid.FindRowCellTemplateControl(i, grid.Columns[2] as GridViewDataColumn, "combito") as ASPxComboBox;
     //combito.Value  
  }
0 голосов
/ 30 июля 2010

Проблема возникает из-за того, что свойство ClientInstanceName для всех редакторов в одном столбце установлено на одно и то же значение. Возможное решение - обработать событие HtmlRowCreated объекта ASPxGridView и установить уникальное значение для ClientInstanceName для обоих редакторов. Кроме того, в этом обработчике события вы должны написать обработчик события SelectedIndexChanged на стороне клиента. Наконец, чтобы получить экземпляр редактора, используйте метод FindRowCellTemplateControl в ASPxGridView.

Также вам может пригодиться следующая статья:

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

...