【问题标题】:Radgrid dropdownlist onchangeRadgrid 下拉列表 onchange
【发布时间】:2011-11-03 21:39:23
【问题描述】:

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

感谢您的帮助。

【问题讨论】:

  • 到目前为止你已经走了多远?,你是如何配置你的网格的?如果您发布您的尝试(相关标记和代码背后),我会看看。但是如果没有这些信息,就很难为您指明正确的方向。
  • 更改下拉菜单时是否需要联系服务器获取信息?即使使用 ajax 更新,整个页面也会经历其生命周期。
  • 这是我试图遵循的一个例子。但我的标签并不令人耳目一新。 telerik.com/help/aspnet/grid/…

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


【解决方案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> 

【讨论】:

  • 更改 Grid 内的下拉列表时如何找到此控件?
  • 我在页面的底部也有这个标签控件。我无法将控件包装在 RadAjaxPanel 中。
  • @nav100:然后使用 RadAjaxManager。
  • DropDownList的onChange是否必须找到控件“Label1”或“Label2”?
  • @nav100:如果它们没有嵌套在网格中,您应该可以直接在下拉菜单的 SelectedIndexChanged 事件中引用它们。
【解决方案2】:

您在 cmets 中发布的 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;
}

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多