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"> </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();
}
}
你能移动RadGrid
内UpdatePanel
并再次尝试吗?
<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>
您还可以使用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占用空间。
这是很棒的信息,@Jeff。我会尝试一下并让你知道。谢谢。尽管我认为,Telerik需要在文档和支持论坛上做更好的工作。 – Csharp 2013-05-03 13:25:32
您是指Stackoverflow还是Telerik支持论坛?根据您的支持合同,您将在论坛上获得不同的SLA响应时间。 Stackoverflow不像Telerik论坛那样被跟踪所有这些信息都在内部被跟踪 – 2013-05-03 14:19:05
Stackoverflow已经让我陷入了期待60秒内的回应。 Telerik倾向于在5天后作出回应,在我的世界里,为了按时交付项目太长了。将检查我的SLA。 – Csharp 2013-05-03 14:22:47
你如何填充数据到RadGrid?你能把代码发布到后面吗? – Win 2013-05-02 20:22:24