UpdatePanel или RadAjaxPanel в шаблоне RadGrid EditForm не работают - PullRequest
0 голосов
/ 19 января 2012

У меня есть RadGrid, в котором я использую шаблон FormForm EditForm.

Внутри этого есть список (RadComboBox) с некоторыми компаниями. Когда пользователь выбирает одну из этих компаний, он должен заполнить другой RadComboBox списком всех местоположений.

Сначала я попробовал это с помощью UpdatePanel, затем RadAjaxPanel. Ни одна из них не работает.

Это урезанная версия:

<FormTemplate>
    <table>
        <telerik:RadAjaxPanel runat="server">
            <tr>
                <td>
                    Company
                </td>
                <td>
                    <telerik:RadComboBox ID="rcbCompany" runat="server" Width="250px" ValidationGroup="NewResource"
                        DataTextField="C_Name" DataValueField="Bedrijf_ID" AppendDataBoundItems="true"
                        OnSelectedIndexChanged="rcbCompany_OnSelectedIndexChanged">
                    </telerik:RadComboBox>
                </td>
            </tr>
            <tr>
                <td>
                    Locatie
                </td>
                <td>
                    <telerik:RadComboBox ID="rcbLocation" runat="server" Width="250px" ValidationGroup="NewResource"
                        DataTextField="location" DataValueField="Location_ID" AppendDataBoundItems="true" />
                </td>
            </tr>
        </telerik:RadAjaxPanel>
    </table>
</FormTemplate>

Как вы можете сделать эту работу? Если это невозможно, просьба дать альтернативные подходы, которые не требуют большой работы.

1 Ответ

0 голосов
/ 20 января 2012

Вы можете сделать это, используя событие ItemDataBound для сетки, я показал пример для привязки drpdown страны:

protected void gridLocation_ItemDataBound(object sender, GridItemEventArgs e)
    {
            if (e.Item.IsInEditMode)
            {
                GridEditableItem item = (GridEditableItem)e.Item;
                if (!(e.Item is IGridEditableColumn))
                {
                    RadComboBox combo = (RadComboBox)item.FindControl("dropdwnCountry");
                    LoadCountries(combo);
                }
            }
    }

protected void LoadCountries(RadComboBox combo)
    {
        //your defn goes here
    }

А для каскадного выпадающего списка вы можете использовать событие onchange для страны, например:

protected void country_selected(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
    {
            RadComboBox combo = (RadComboBox)sender;
            GridEditableItem edit = (sender as RadComboBox).NamingContainer as GridEditableItem;
            RadComboBox combos = (RadComboBox)edit.FindControl("dropdwnState");
            LoadStates(combos, combo.SelectedValue);
    }
 protected void LoadStates(RadComboBox combo,string countryId)
    {
        //your defn goes here
    }

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...