RadGrid с LinkButtons запускает обновление двух разных элементов управления, используя RadAjaxManager - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть radGrid с двумя LinkButtons, определенными в ItemTemplate столбца.

Затем у меня есть две разные панели вне сетки, которые должны быть обновлены в соответствии с тем, какая кнопка LinkButton была нажата.

Например, если я нажимаю LinkButton1, только Panel1 должна быть обновлена.Если я нажму LinkButton2, обновится только Panel2.

Проблема в том, что я не могу получить доступ к LinkButtons внутри Grid, поэтому в AjaxManager я установил:

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" >
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="GrdBlogPost">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="Panel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>

Таким образом, я установил в качестве элемента управления, который запускает обратную передачу ajax, всю сетку, но я могу различить, кто является реальными вложенными элементами управления, вызвавшими события.

Даже если я явно напишу идентификаторы вложенных элементов управления:

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" >
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="LinkButton1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="Panel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
        <telerik:AjaxSetting AjaxControlID="LinkButton2">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="Panel2" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>

Обновлены Panel1 и Panel2, независимо от того, нажал ли я LinkButton1 или LinkButton2 (я думаю, что это всегда контейнер, RadGrid, тот, который вызывает событие)

Как я могу различить обновленные элементы управления, в зависимости от того, какой вложенный элемент управления был выбран внутри таблицы?

1 Ответ

0 голосов
/ 18 февраля 2019

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

Что вы МОЖЕТЕ сделать, так это извлечь функциональность вашей кнопки вскрытые кнопки вне сетки, и нажимайте их, используя вызовы JavaScript, инициированные кнопками ссылки сетки.У меня нет вашего кода для работы, так что это будет псевдокод.

//grid template
    <RadTemplateColumn>
        <asp:LinkButton ID="LinkButton1" onclick="myFunction1(); return false;" />
    </RadTemplateColumn>

//javascript
<script>
    function myFunction1(){
    $("#hdnButton1").click();
}
</script>

  //hidden button
<telerik:RadButton style="display:none;" ID="hdnButton1" ClientIDMode="Static" OnClick="ServerMethod1" />

//ajax settings referencing hidden button now
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" >
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="hdnButton1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="Panel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>        
    </AjaxSettings>
</telerik:RadAjaxManager>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...