Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 带有链接按钮的RadGrid使用RadAjaxManager触发两个不同控件的更新_Asp.net_Ajax_Telerik - Fatal编程技术网

Asp.net 带有链接按钮的RadGrid使用RadAjaxManager触发两个不同控件的更新

Asp.net 带有链接按钮的RadGrid使用RadAjaxManager触发两个不同控件的更新,asp.net,ajax,telerik,Asp.net,Ajax,Telerik,我有一个radGrid,在列的ItemTemplate中定义了两个LinkButton 然后我有两个不同的面板,在网格外,必须根据按下的LinkButton进行更新 在示例中,如果我按LinkButton1,则只有Panel1必须更新。 如果我按LinkButton2,只有Panel2会更新 问题是我无法访问网格中的链接按钮,因此在AjaxManager中,我设置: <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" &g

我有一个radGrid,在列的ItemTemplate中定义了两个LinkButton

然后我有两个不同的面板,在网格外,必须根据按下的LinkButton进行更新

在示例中,如果我按LinkButton1,则只有Panel1必须更新。 如果我按LinkButton2,只有Panel2会更新

问题是我无法访问网格中的链接按钮,因此在AjaxManager中,我设置:

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

因此,我将触发ajax回发的控件设置为整个网格,但我可以区分触发事件的真正嵌套控件是谁

即使我显式写入嵌套控件的ID:

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

无论我单击了LinkButton1还是LinkButton2,Panel1和Panel2都会更新(我认为触发事件的始终是容器RadGrid)


我如何根据网格中单击的嵌套控件来区分更新的控件?

您不能像这样引用网格中的链接按钮,网格中的任何内容都或多或少无法通过服务器端代码和服务器控件访问

您可以做的是将按钮功能提取到网格外的隐藏按钮,并使用由网格链接按钮启动的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>
//网格模板
//javascript
函数myFunction1(){
$(“#hdnButton1”)。单击();
}
//隐藏按钮
//ajax设置现在引用隐藏按钮