首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于用户选择而不刷新页面的RadGrid刷新

基于用户选择而不刷新页面的RadGrid刷新
EN

Stack Overflow用户
提问于 2014-01-27 19:13:42
回答 2查看 4.8K关注 0票数 0

在我的页面上,我有一个RadGrid (命名为RadGrid1)和一个RadComboBox (命名为Client)。这两种方法都是从SQL数据库中填充的,下面是我试图做的事情;

当用户从下拉列表中选择一个客户端时,我希望重新加载网格,witout,重新加载页面。这是网格和组合框

代码语言:javascript
复制
<div style="vertical-align: top">
    <fieldset>
        <p>
            <asp:Label ID="ClientLabel" runat="server" AssociatedControlID="Client">Client</asp:Label><telerik:RadComboBox
                ID="Client" runat="server" ValidationGroup="GetRFPIDValidationGroup" OnSelectedIndexChanged="Client_SelectedIndexChanged" />
                <p>
                <asp:RequiredFieldValidator ID="ClientRequiredValidator" runat="server" ControlToValidate="Client"
                    CssClass="failureNotification" ErrorMessage="Client is required." ToolTip="Client is required."
                    ValidationGroup="GetRFPIDValidationGroup">*</asp:RequiredFieldValidator>
            </p>
            <p>
                &nbsp;<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" UpdateInitiatorPanelsOnly="True">
                    <AjaxSettings>
                        <telerik:AjaxSetting AjaxControlID="RadGrid1">
                            <UpdatedControls>
                                <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
                                <telerik:AjaxUpdatedControl ControlID="Client" LoadingPanelID="RadAjaxLoadingPanel1" />
                            </UpdatedControls>
                        </telerik:AjaxSetting>
                        <telerik:AjaxSetting AjaxControlID="Client">
                            <UpdatedControls>
                                <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
                            </UpdatedControls>
                        </telerik:AjaxSetting>
                    </AjaxSettings>
                </telerik:RadAjaxManager>
                <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
                </telerik:RadAjaxLoadingPanel>
                <telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="RadAjaxLoadingPanel1">
                    <telerik:RadGrid ID="RadGrid1" runat="server" AllowSorting="True" AllowPaging="True"
                        OnNeedDataSource="RadGrid1_NeedDataSource" OnSortCommand="RadGrid1_SortCommand">
                        <MasterTableView AllowMultiColumnSorting="true">
                            <PagerStyle AlwaysVisible="true" />
                        </MasterTableView>      
                    </telerik:RadGrid>
                </telerik:RadAjaxPanel>
            </p>
    </fieldset>
</div>

下面是OnSelectedIndexChanged的RadCmboBox事件

代码语言:javascript
复制
Protected Sub Client_SelectedIndexChanged(sender As Object, e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) Handles Client.SelectedIndexChanged
    RadGrid1.DataSource = Load(Client.SelectedItem.Text, "2014")
    RadGrid1.Rebind()
    Me.RadGrid1.MasterTableView.Rebind()
End Sub

最后是荷载法

代码语言:javascript
复制
Protected Sub RadGrid1_NeedDataSource(sender As Object, e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles RadGrid1.NeedDataSource
    TryCast(sender, RadGrid).DataSource = Load(Client.SelectedItem.Text, "2014")
End Sub

Public Function Load(ByVal client_id As String, ByVal year As String) As DataTable
    Using conn As New SqlConnection(SqlConn.GetConnectionString("ProLodgic"))
        Using cmd As New SqlCommand()
            With cmd
                .CommandType = CommandType.StoredProcedure
                .CommandText = "spLoadRFPIDs"
                .Parameters.AddWithValue("@ClientID", client_id)
                .Parameters.AddWithValue("@BidYear", year)
                .Connection = conn
            End With

            SqlConn.HandleConnection(conn, False)

            Using ad As New SqlDataAdapter(cmd)
                'ad.SelectCommand = cmd
                Dim table As New DataTable()
                Try

                    ad.Fill(table)
                    Return table
                Catch ex As Exception
                    ErrorMessage.Text = ex.Message
                    Return Nothing
                End Try
            End Using
        End Using
    End Using
End Function

有人对我做错了什么有任何想法。我知道我可以将AutoPostBack设置为RadComboBox上的True,但我试图阻止页面重新加载。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-28 17:40:01

添加AutoPostBack = True完全符合我的要求,而不是我所期望的那样。

票数 1
EN

Stack Overflow用户

发布于 2014-09-22 14:03:25

在从列表中选择项时,可以使用telerik Ajax管理器仅重新加载网格,以避免页面完全回发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21389582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档