Telerik RadGrid Returns 空网格

Telerik RadGrid Returns Empty Grid

如标题所示,我很难让我的 RadGrid 正确显示记录。这是我的代码:

ASP.NET 代码

<Telerik:AjaxSetting AjaxControlID="pnlMain">
    <UpdatedControls>
        <Telerik:AjaxUpdatedControl ControlID="pnlMain" LoadingPanelID="MasterPanel" />
        <Telerik:AjaxUpdatedControl ControlID="rgShowData" LoadingPanelID="MasterPanel" />
    </UpdatedControls>
</Telerik:AjaxSetting>
<Telerik:AjaxSetting AjaxControlID="rgShowData">
    <UpdatedControls>
        <Telerik:AjaxUpdatedControl ControlID="rgShowData" LoadingPanelID="MasterPanel" />
        <Telerik:AjaxUpdatedControl ControlID="pnlMain" LoadingPanelID="MasterPanel" />
    </UpdatedControls>
</Telerik:AjaxSetting>

[ ... ]

<div class="FormContent" style="height: 1500px">
    <asp:Panel ID="pnlMain" runat="server">
        <div class="box">
            <Telerik:RadGrid ID="rgShowData" runat="server" ShowFooter="true" Width="600px" Height="400px"
                CellPadding="4" ForeColor="#333333" Visible="false" EmptyDataText="No Records Found">
                <MasterTableView AutoGenerateColumns="false" TableLayout="Fixed" Width="100%">
                    <Columns>
                        <Telerik:GridBoundColumn DataField="quote_date" HeaderText="Date" SortExpression="quote_date"
                            ReadOnly="true" UniqueName="QuoteDate" DataFormatString="{MM/dd/yy}" />
                        <Telerik:GridBoundColumn DataField="intl_amt" HeaderText="Global" SortExpression="intl_amt"
                            ReadOnly="true" UniqueName="IntlAmt" DataFormatString="{0:N}" />
                    </Columns>
                </MasterTableView>
            </Telerik:RadGrid>
        </div>
    </asp:Panel>
</div>

VB.NET CODE-BEHIND

Private Sub btnSubmit_Click()
    [..Validation Code..]
    rgShowData.Visible = True
    rgShowData.Rebind() ''Automatically calls NeedDataSource
End Sub

Private Sub rgShowData_NeedDataSource()
    Dim ds As DataSet
    ds = GetPostData(dateValue1, dateValue2)
    rgShowData.DataSource = ds.Tables("radGrid")
End Sub

Private Function GetPostData(ByVal dateValue1, ByVal dateValue2) As DataSet
    Dim ds As New DataSet
    Dim dt As New DataTable("radGrid")
    Try
        dt = data.GetInfo(dateValue1, dateValue2)
    Catch ex As Exception
        Throw ex
    End Try

    ds.Tables.Add(dt)
    Return ds
End Function

我正在调用 RadGrid 的 Rebind() 属性 而不是 DataBind() 并且当我在调试器模式下浏览代码时,我可以看到数据集和数据表正在填充正确的数据。一切正常,直到我进入网页并且 RadGrid 为空。我没有收到任何错误消息,所以我不确定这可能是什么原因造成的。

如有任何帮助,我们将不胜感激。谢谢!

您需要 AjaxControlIDbtnSubmit。基本上是说 btnSubmit 将发起 AJAX 请求并更新 rgShowData.

<Telerik:AjaxSetting AjaxControlID="btnSubmit">
    <UpdatedControls>
        <Telerik:AjaxUpdatedControl ControlID="pnlMain" LoadingPanelID="MasterPanel" />
    </UpdatedControls>
</Telerik:AjaxSetting>

asp:panel 中使用 radgrid 并不是最好的方法。最好使用 RadAjaxManager

不要害怕使用 RadAjaxManager,它易于使用。只需在您的页面中添加 RadAjaxManager。然后点击 Open Configuration,在那里你需要点击 One Control(radgrid,button) 并将其映射到 另一个(只是勾选复选框)

尝试一下,如果遇到任何困难,请告诉我。 这是 RadAjaxManager

的文档

see this documentation about RadAjaxManager

尽管数据源包含正确的数据,但我的 RadGrid 未被填充的原因是 RadGrid 和数据源具有我不知道且无法转换的不同格式。

我不确定它是怎么发生的,因为我在创建许多其他 RadGrid 之后建模了这个 RadGrid,但是我的 RadGrid 不接受数据源返回的字符串。我必须获取数据源中的内容,将值转换为正确格式的小数,然后将它们放入另一个数据 table 以发送到 RadGrid。