首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可从Repeater.ItemDataBound访问的DataTable

可从Repeater.ItemDataBound访问的DataTable
EN

Stack Overflow用户
提问于 2012-12-25 10:01:33
回答 1查看 3K关注 0票数 0

总的来说,我是ASP.Net、C#和OOP的新手,我正在尝试进入关于类、对象、方法等的正确范例。

我想从Repeater.ItemDataBound事件访问DataTable。我应该在哪里创建DataTable,以便该方法可以访问它?我不希望每次调用ItemDataBound时都创建DataTable,只创建一次。这是一个单独的类,还是同一个类中的另一个方法,或者其他什么?

我想用它来设置RepeaterHeaderTemplate中的控件的值。下面是我的代码:

代码语言:javascript
运行
复制
public partial class test : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        int numPages = 3, numItems = 10;

        int[] parentRepeatCnt = Enumerable.Range(0, numPages).ToArray();
        int[] childRepeatCnt = Enumerable.Range(0, numItems).ToArray();

        ParentRepeater.DataSource = parentRepeatCnt;
        ParentRepeater.DataBind();

        foreach (int i in parentRepeatCnt)
        {
            Repeater ChildRepeater = ParentRepeater.Items[i].FindControl("ChildRepeater") as Repeater;
            ChildRepeater.DataSource = childRepeatCnt;
            ChildRepeater.DataBind();
        }
    }

    public void ChildRepeater_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Header)
        {
            Label Label1 = e.Item.FindControl("Label1") as Label;
            // access DataTable here
            Label1.Text = myDataTable.Rows[0]["item"].ToString();
        }

    }
}

另外,请随时批评我现有的代码。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-25 13:35:14

公共分部类测试: System.Web.UI.Page {

公共数据表mydatatable =新的数据表();

代码语言:javascript
运行
复制
protected void Page_Load(object sender, EventArgs e)
{
    int numPages = 3, numItems = 10;

    int[] parentRepeatCnt = Enumerable.Range(0, numPages).ToArray();
    int[] childRepeatCnt = Enumerable.Range(0, numItems).ToArray();

    ParentRepeater.DataSource = parentRepeatCnt;
    ParentRepeater.DataBind();

    foreach (int i in parentRepeatCnt)
    {
        Repeater ChildRepeater = ParentRepeater.Items[i].FindControl("ChildRepeater") as Repeater;
        ChildRepeater.DataSource = childRepeatCnt;
        ChildRepeater.DataBind();
    }
}

public void ChildRepeater_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Header)
    {
        Label Label1 = e.Item.FindControl("Label1") as Label;
        // access DataTable here
        Label1.Text = myDataTable.Rows[0]["item"].ToString();
    }

}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14027121

复制
相关文章

相似问题

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