radGrid控件不显示aspx页面中的数据

问题描述:

我有一个使用RadGrid控件显示数据的asp.net应用程序(由以前的开发人员创建)。但是,如果页面上有RadGrid,RadGrid不会显示数据。我删除UpdatePanel后,radGrid很好地工作。如果我删除UpdatePanel,那么RadCombobox会提交整个页面(而不是使用Ajax)。radGrid控件不显示aspx页面中的数据

有没有办法让radGrid一起工作?背后

<asp:UpdatePanel ID="upnlFilter" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <span class="subHeader">VTRIP Log Search: </span> 
      <asp:Panel ID="Panel1" runat="server" BorderColor="#E3B391" BorderStyle="Solid" 
       BorderWidth="1" Width="994px"> 
       <div style="height:10px; width:994px"> 
       </div>     
        <table style="width: 974px; margin: 10px" border="0">           
        <tr> 
         <td width="200px"> 
          <telerik:RadComboBox ID="DriverDD" runat="server" Height="120px" Width="180px" 
           DropDownWidth="180px" EmptyMessage="Choose a Driver" 
           HighlightTemplatedItems="true" AutoPostBack="true" 
           AppendDataBoundItems="true" 
           onselectedindexchanged="DriverDD_SelectedIndexChanged" > 
          </telerik:RadComboBox> 
         </td> 

         <td width="220px"> 
          <asp:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender1" runat="server" TargetControlID="txtDOS" 
           WatermarkText="Select today or any previous day" WatermarkCssClass="watermarked"> 
          </asp:TextBoxWatermarkExtender> 
          <asp:TextBox ID="txtDOS" runat="server" Width="200px" EnableViewState="true" CssClass="SetTextbox" 
           Height="20px" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px"></asp:TextBox> 
          <asp:CalendarExtender ID="txtDOS_CalendarExtender" runat="server" Enabled="True" 
           TargetControlID="txtDOS"> 
          </asp:CalendarExtender> 
         </td> 
         <td style="width:350px">&nbsp;</td> 
        </tr> 
       </table> 
     </asp:Panel> 
    </ContentTemplate> 
</asp:UpdatePanel> 

    <br/> 
     <telerik:RadGrid ID="RadGrid1" OnSortCommand="RadGrid1_SortCommand" 
OnPageIndexChanged="RadGrid1_PageIndexChanged" 
      Width="99%" Height="181px" OnPageSizeChanged="RadGrid1_PageSizeChanged" AllowSorting="True" 
      PageSize="5" AllowPaging="True" AllowMultiRowSelection="True" runat="server" 
      GridLines="None" AutoGenerateColumns="False"> 
      <MasterTableView Height="100px" Width="100%" Summary="RadGrid table"> 
       <CommandItemSettings ExportToPdfText="Export to PDF" /> 
       <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column" 
        Visible="True"> 
       </RowIndicatorColumn> 
       <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column" 
        Visible="True"> 
       </ExpandCollapseColumn> 
       <Columns> 
        <telerik:GridBoundColumn DataField="TripId" HeaderText="Trip ID" SortExpression="TripID" 
         UniqueName="TripID" 
         SortAscImageUrl="SortAsc.gif" SortDescImageUrl="SortDesc.gif"> 
        </telerik:GridBoundColumn> 
        <telerik:GridBoundColumn DataField="MemberName" HeaderText="Member Name" SortExpression="MemberName" 
         UniqueName="MemberName" 
         SortAscImageUrl="SortAsc.gif" SortDescImageUrl="SortDesc.gif"> 
        </telerik:GridBoundColumn> 
        <telerik:GridBoundColumn DataField="VehicleType" HeaderText="Vehicle Type" SortExpression="VehicleType" 
         UniqueName="VehicleType" 
         SortAscImageUrl="SortAsc.gif" SortDescImageUrl="SortDesc.gif"> 
        </telerik:GridBoundColumn> 
        <telerik:GridBoundColumn DataField="Status" HeaderText="Status" SortExpression="Status" 
         UniqueName="Status" 
         SortAscImageUrl="SortAsc.gif" SortDescImageUrl="SortDesc.gif"> 
        </telerik:GridBoundColumn> 
       </Columns> 
       <EditFormSettings> 
        <EditColumn FilterControlAltText="Filter EditCommandColumn column"> 
        </EditColumn> 
       </EditFormSettings> 
       <PagerStyle PageSizeControlType="RadComboBox" /> 
      </MasterTableView> 
      <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle> 
      <FilterMenu EnableImageSprites="False"> 
      </FilterMenu> 
     </telerik:RadGrid> 

代码:(使用Grid - Simple Data Binding填充网格)

private void LoadData() 
{ 
    if (Session["TripMaster"] != null) 
    { 
     RadGrid1.DataSource = Session["TripMaster"]; 
     RadGrid1.DataBind(); 
    } 
} 
+0

你如何填充数据到RadGrid?你能把代码发布到后面吗? – Win 2013-05-02 20:22:24

你能移动RadGridUpdatePanel并再次尝试吗?

<asp:UpdatePanel ID="upnlFilter" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
    <span class="subHeader">VTRIP Log Search: </span> 
    <asp:Panel 
     .... 
    </asp:Panel> 
    <br/> 
    <telerik:RadGrid 
     .... 
    </telerik:RadGrid> 
    </ContentTemplate> 
</asp:UpdatePanel> 
+0

没有数据返回 – Csharp 2013-05-02 20:47:05

+0

您能否移除'UpdateMode ='有条件的''并且再试一次? – Win 2013-05-02 21:03:05

+0

那个工作。谢谢你的帮助 !! – Csharp 2013-05-03 12:54:30

您还可以使用RadAjaxManager通过此操作,您可以运行,你不会看到类AjaxPanel所有项目的完全回发和渲染。我们推荐使用这种方法,因为它可以减少页面上的控件,并更有针对性地更新控件。

删除的UpdatePanel与标记添加RadAjaxManager到您的网页是这样的:

<telerik:RadAjaxManager runat="server" ID="ajaxMgr"> 
    <AjaxSettings> 
     <telerik:AjaxSetting AjaxControlID="DriverDD"> 
      <UpdatedControls> 
       <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> 
      </UpdatedControls> 
     </telerik:AjaxSetting> 
    </AjaxSettings> 
</telerik:RadAjaxManager> 

...你应该看到了相同的结果,用更少的标记和事件的担心。

最后,如果您使用的是2013 Q1 Q1 AJAX controls,我建议您将RadComboBox更改为RadDropDownList。当您提供标准组合框时,此控件的标记明显较少。另一个选项,用于减轻此控件生成的HTML的影响,将添加RenderMode="Lightweight"属性,以使其生成现代浏览器支持的较小HTML占用空间。

+0

这是很棒的信息,@Jeff。我会尝试一下并让你知道。谢谢。尽管我认为,Telerik需要在文档和支​​持论坛上做更好的工作。 – Csharp 2013-05-03 13:25:32

+0

您是指*还是Telerik支持论坛?根据您的支持合同,您将在论坛上获得不同的SLA响应时间。 *不像Telerik论坛那样被跟踪所有这些信息都在内部被跟踪 – 2013-05-03 14:19:05

+0

*已经让我陷入了期待60秒内的回应。 Telerik倾向于在5天后作出回应,在我的世界里,为了按时交付项目太长了。将检查我的SLA。 – Csharp 2013-05-03 14:22:47