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 为空。我没有收到任何错误消息,所以我不确定这可能是什么原因造成的。
如有任何帮助,我们将不胜感激。谢谢!
您需要 AjaxControlID 和 btnSubmit。基本上是说 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
的文档
尽管数据源包含正确的数据,但我的 RadGrid 未被填充的原因是 RadGrid 和数据源具有我不知道且无法转换的不同格式。
我不确定它是怎么发生的,因为我在创建许多其他 RadGrid 之后建模了这个 RadGrid,但是我的 RadGrid 不接受数据源返回的字符串。我必须获取数据源中的内容,将值转换为正确格式的小数,然后将它们放入另一个数据 table 以发送到 RadGrid。
如标题所示,我很难让我的 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 为空。我没有收到任何错误消息,所以我不确定这可能是什么原因造成的。
如有任何帮助,我们将不胜感激。谢谢!
您需要 AjaxControlID 和 btnSubmit。基本上是说 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
的文档尽管数据源包含正确的数据,但我的 RadGrid 未被填充的原因是 RadGrid 和数据源具有我不知道且无法转换的不同格式。
我不确定它是怎么发生的,因为我在创建许多其他 RadGrid 之后建模了这个 RadGrid,但是我的 RadGrid 不接受数据源返回的字符串。我必须获取数据源中的内容,将值转换为正确格式的小数,然后将它们放入另一个数据 table 以发送到 RadGrid。