首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示RadGrid的当前页面状态

问显示RadGrid的当前页面状态
EN

Stack Overflow用户
提问于 2014-07-07 19:49:01
回答 2查看 1.1K关注 0票数 1

因此,我试图使用RadGrid控件来显示类似于“显示100中的1-20”之类的内容。我在RadGrid1_PageIndexChanged事件中放置了以下代码:

代码语言:javascript
复制
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是个未知数。

代码语言:javascript
复制
$(document).ready(function () {
    var grid = $find("<%=rgResults.ClientID%>");
    var mtv = grid.get_masterTableView();
    var pageIndex = mtv.get_currentPageIndex();
    alert(pageIndex);
});

这是雷达格栅代码:

代码语言:javascript
复制
<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

代码语言:javascript
复制
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);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-15 18:21:59

看来我找到了我的问题的答案。我试过很多不同的东西,但看起来它可能引用了错误的版本。

我用的是:

Telerik.WebControls.GridBoundColumn

而不是

Telerik.Web.UI.GridBoundColumn

例如。

一旦我改变了这一点,$find和其他ajax就开始工作了。也许我以前用过非AJAX的RadGrid,这可以解释,我想.

但是无论如何,感谢@rdmptn对你的帮助!

票数 0
EN

Stack Overflow用户

发布于 2014-07-08 13:46:57

如果标签没有更新,就有AJAX,因此需要确保在部分回发响应中包含标签。如果它已经不在一个UpdatePanel中,那么将它封装在一个。如果它的UpdateMode总是(默认值),那么就应该立即工作。如果将其设置为条件,则需要调用它的Update()方法。您还可能希望将其RenderMode设置为内联,以避免破坏布局。

在客户端方法中-使用Sys.Application.Load事件,因为在此之前无法使用MS脚本cotnrols,因此$find()问题。例如:

代码语言:javascript
复制
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);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24618647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档