Telerik RadGrid返回空网格

时间:2015-05-14 17:16:47

标签: asp.net vb.net telerik

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

ASP.NET CODE

<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为空。我没有收到任何错误消息,所以我不确定是什么原因造成的。

非常感谢任何帮助。谢谢!

3 个答案:

答案 0 :(得分:1)

您需要 btnSubmit AjaxControlID 。它基本上是说btnSubmit将启动AJAX请求并更新rgShowData。

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:-1)

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

不要害怕使用 RadAjaxManager ,它易于使用。只需在页面中添加 RadAjaxManager 即可。然后点击打开配置,您需要点击 One Control (radgrid,按钮)并将其映射到其他(只是一个Checkbox)打勾)

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

的文档

see this documentation about RadAjaxManager