寻呼机模板和NumericPagerField

时间:2011-02-25 11:27:14

标签: c# .net

我需要使用Pager模板并将NumericPagerField的内容绑定到寻呼机模板。

Desired Pager :(无法发布图片,因为我没有10分)

展开/折叠-------------------------------------------- --- Page< 1 2 3 4>

在ASPX页面上:

<asp:DataPager ID="ItemDataPager">
<Fields>
    <asp:TemplatePagerField>
        <PagerTemplate>
            <asp:Panel>
            Panel to create expand and collapse all
            </asp:Panel>
            <table>
                <tr>
                    <td>
                        <asp:LinkButton> Previous</asp:LinkButton>
                    </td>
                    <td>
                    <asp:Panel ID="NumericPagerPlaceHolder"></asp:Panel>
                    </td>
                    <td>
                    <asp:LinkButton>Next</asp:LinkButton>
                    </td>
                </tr>
            </table>
        </PagerTemplate>
    </asp:TemplatePagerField>
    <asp:NumericPagerField />
</Fields>

关于aspx.cs

我需要编写一个代码,从“NumericPagerField”获取内容,并将“Panel”放在“PagerTemplate”表中

我试过这种方式

    DataPager dataPager = ((e.Item.FindControl("ItemDataPager")) as DataPager);
    Control numericPagerControl = dataPager;
    Control numericPagerPlaceHolder = dataPager.FindControl("NumericPagerPlaceHolder");
    numericPagerPlaceHolder.Controls.Add(numericPagerControl);

在第二行,我无法找到给出“NumericPagerPlaceHolder”内容的方法 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

我不是在解决你的经典ASP问题,但是为了让你头疼,你将使用内置的ASP.NET控件(我很抱歉你的运气不能使用MVC3)你会很快写出来快速[WebMethod]并使用JQGrid和JQuery来实现您的目标。

的jqGrid: http://www.trirand.com/blog/

然后要捕获您的数据,您可以在JQuery中挂钩到$ .ajax。这将使您的页面成为ajax驱动,如果这不是对您的限制,最终将更容易实现您需要做的事情并保持长期。

$ .ajax文档: http://api.jquery.com/jQuery.ajax/

如何构建一个返回的JSon对象将数据绑定到网格(您的方法将返回一个字符串):

return Json(
    (
        new
        {
            total = totalPages /*calculate this total records / rowsPerPage */,
            page = page /* passed in by jqgrid */,
            records = YourCollection.Count(),
            rows =
                YourCollection.Select(x => new
                {
                    i = x.RowIdentifier,
                    cell = new[]
                            {
                                x.YourProperty,
                x.YourOtherProperty,
                x.YourOtherOtherProperty,
                x.YouGetThePointProperty
                            }
                }
                ).ToArray()
        }
    )
    , JsonRequestBehavior.AllowGet);

老实说,当你开始尝试使用动态数据绑定,分页和更新来做一些古怪的事情时,你最好不要使用内置的asp.net对象并进行自定义。

编辑(实际使用asp:DataPager添加一些细节):

如果你绝对必须使用asp:DataPager,你可以深入了解这个信息丰富的博客,其中涵盖了你想要做的所有事情,http://www.4guysfromrolla.com/articles/061009-1.aspx

〜Vulgarbinary