正如标题所示,我很难让我的RadGrid正确显示记录。这是我的代码:
<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>
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为空。我没有收到任何错误消息,所以我不确定是什么原因造成的。
非常感谢任何帮助。谢谢!
答案 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
的文档