因此,我试图使用RadGrid控件来显示类似于“显示100中的1-20”之类的内容。我在RadGrid1_PageIndexChanged事件中放置了以下代码:
int showingRowsFrom = ((e.NewPageIndex + 1) * rgResults.PageSize) - rgResults.PageSize + 1;
int showingRowsTo;
if ((e.NewPageIndex + 1) == rgResults.PageCount)
{
showingRowsTo = GridSource.Tables[0].Rows.Count;
}
else
{
showingRowsTo = (e.NewPageIndex + 1) * rgResults.PageSize;
}
string rowCount = string.Format("Displaying {0}-{1} of {2}", showingRowsFrom, showingRowsTo, GridSource.Tables[0].Rows.Count);
lblResultsCountBottom.Text = lblResultsCountTop.Text = rowCount;不幸的是,这看起来并没有完成完整的回发,标签也没有被更新。我该怎么做呢?我试着做它的客户端,并对此也有问题。它说$find是个未知数。
$(document).ready(function () {
var grid = $find("<%=rgResults.ClientID%>");
var mtv = grid.get_masterTableView();
var pageIndex = mtv.get_currentPageIndex();
alert(pageIndex);
});这是雷达格栅代码:
<radG:RadGrid ID="rgResults" runat="server" AllowMultiRowSelection="True" AllowPaging="True"
AllowSorting="True" EnableAJAX="False" GridLines="None" OnItemCommand="rgResults_ItemCommand" OnItemDataBound="rgResults_ItemDataBound"
PageSize="20"
Skin="Default" Width="100%" OnPageIndexChanged="rgResults_PageIndexChanged" OnSortCommand="rgResults_SortCommand" OnInit="rgResults_Init" OnPreRender="rgResults_PreRender">
<ClientSettings ApplyStylesOnClient="True">
</ClientSettings>
<ItemStyle CssClass="griditemtext" />
<HeaderStyle CssClass="gridheadertext" />
<FooterStyle CssClass="gridfootertext" />
<AlternatingItemStyle CssClass="gridalternetitemtext" />
<PagerStyle CssClass="gridpagertext" Mode="NumericPages" />
<CommandItemStyle CssClass="gridcommandtext" />
<SelectedItemStyle CssClass="gridselecteditemtext" />
<MasterTableView AutoGenerateColumns="False"
DataKeyNames="Article Number" Font-Bold="False" Font-Italic="False" CommandItemDisplay="None" Font-Overline="False"
Font-Strikeout="False" Font-Underline="False" GridLines="Both">
<ExpandCollapseColumn Visible="False">
<HeaderStyle Width="19px" />
</ExpandCollapseColumn>
<RowIndicatorColumn Visible="False">
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
<PagerStyle Mode="NumericPages" />
<Columns>
</Columns>
</MasterTableView>
</radG:RadGrid>我不会为所有列发布代码,因为它们都是以相同的方式完成的,但是下面是要点:-p
var hyperLinkColumn = new GridHyperLinkColumn
{
DataNavigateUrlFields = new[] { "TransactionID" },
Target = "_blank",
DataNavigateUrlFormatString = @"~/w1/SearchResultDetail.aspx?id={0}",
DataTextField = "Article Number",
HeaderText = "Article Number",
SortExpression = "Article Number",
UniqueName = "ArticleNumber"
};
rgResults.Columns.Add(hyperLinkColumn);发布于 2014-07-15 18:21:59
看来我找到了我的问题的答案。我试过很多不同的东西,但看起来它可能引用了错误的版本。
我用的是:
Telerik.WebControls.GridBoundColumn
而不是
Telerik.Web.UI.GridBoundColumn
例如。
一旦我改变了这一点,$find和其他ajax就开始工作了。也许我以前用过非AJAX的RadGrid,这可以解释,我想.
但是无论如何,感谢@rdmptn对你的帮助!
发布于 2014-07-08 13:46:57
如果标签没有更新,就有AJAX,因此需要确保在部分回发响应中包含标签。如果它已经不在一个UpdatePanel中,那么将它封装在一个。如果它的UpdateMode总是(默认值),那么就应该立即工作。如果将其设置为条件,则需要调用它的Update()方法。您还可能希望将其RenderMode设置为内联,以避免破坏布局。
在客户端方法中-使用Sys.Application.Load事件,因为在此之前无法使用MS脚本cotnrols,因此$find()问题。例如:
function alertMe() {
var grid = $find("<%=rgResults.ClientID%>");
var mtv = grid.get_masterTableView();
var pageIndex = mtv.get_currentPageIndex();
alert(pageIndex);
Sys.Application.remove_load(alertMe);
}
Sys.Application.add_load(alertMe);https://stackoverflow.com/questions/24618647
复制相似问题