Radgrid下拉列表onchange

时间:2011-08-25 17:17:58

标签: asp.net ajax asp.net-ajax telerik

当我更改RadGrid下拉列表时,我正在尝试刷新网格外的asp.net标签控件。我不回发整个页面。无论如何我可以使用Ajax techinique刷新吗?请告诉我。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

将网格以及网格外部的任何控件换行,这些控件需要在RadAjaxPanel内部异步更新。

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server">
    <asp:Label ID="Label1" runat="server" />
    <telerik:RadGrid ID="RadGrid1" runat="server">
        ...
    </telerik:RadGrid>
</telerik:RadAjaxPanel>

编辑:看到你的上一条评论,使用RadAjaxManager更合适,如:

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" ...>
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RadGrid1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="Label1" />
                <telerik:AjaxUpdatedControl ControlID="Label2" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager> 

答案 1 :(得分:1)

您在评论中发布的Telerik文章(您正在阅读的教程)非常陈旧,因此使用旧版本的Telerik控件。

我已经构建了一个示例,希望能为您提供实现目标的起点,但它使用Telerik ASP.NET Ajax 2010控件(我假设它们在2011版本中没有那么多改变你可以下载)。

这是:

<强>标记

<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>

....

<asp:ScriptManager ID="scriptManager" runat="server"></asp:ScriptManager>
<telerik:RadAjaxPanel ID="radAjax" runat="server">
    <telerik:RadGrid ID="radGrid" runat="server" GridLines="None" Width="100%">
        <MasterTableView AutoGenerateColumns="False">
        <Columns>
            <telerik:GridTemplateColumn>
                <ItemTemplate>
                    <telerik:RadComboBox ID="comboBox1" runat="server" OnSelectedIndexChanged="cbm_SelectedIndexChanged" AutoPostBack="true">
                        <Items>
                            <telerik:RadComboBoxItem Text="Item 1" Value="Value 1" />
                            <telerik:RadComboBoxItem Text="Item 2" Value="Value 2" />
                            <telerik:RadComboBoxItem Text="Item 3" Value="Value 3" />
                        </Items>
                    </telerik:RadComboBox>
                </ItemTemplate>
            </telerik:GridTemplateColumn>
        </Columns>
        </MasterTableView>                    
    </telerik:RadGrid>   
    <asp:Label ID="label1" runat="server"></asp:Label>              
</telerik:RadAjaxPanel> 

<强>代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        //Quick data bind for the example
        var data = new[] { new { Value = "1" }, new { Value = "2" } };
        radGrid.DataSource = data;
        radGrid.DataBind();
    }
}

protected void cbm_SelectedIndexChanged(object o, Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs e)
{
    //Retrieve a reference to the combobox if needed
    RadComboBox comboBox = (RadComboBox)o;

    //Set the label text to the value of the combobox item selected
    label1.Text = e.Value + comboBox.ID;
}

希望这有帮助。