【问题标题】:asp.net FormView display ItemTemplate without databind and datasourceasp.net FormView 显示没有数据绑定和数据源的ItemTemplate
【发布时间】:2012-11-05 18:06:48
【问题描述】:

我有一个 FormView,里面有一个转发器。为了呈现 ItemTemplate,我做了一个假数据源和数据绑定。 然后我用 FindControl 寻找 Repeater 并执行另一个 DataSource 和 DataBind。 所以在这种情况下,HardCodedData 只是一个让我租用 FormView ItemTemplate 的占位符。

FormView1.DataSource = HardCodedData;
FormView1.DataBind();

Repeater r = ((Repeater)FormView1.FindControl("repeater1"));
r.DataSource = GetMyData();
r.DataBind(); 

有没有更好的方法?我可以将 FormView 提供给租户而不提供虚假数据吗?或者我可以通过 FormView DataSource 传递转发器数据吗?

【问题讨论】:

    标签: asp.net formview asprepeater


    【解决方案1】:

    由于转发器控件位于表单视图内,因此您应该将此转发器控件绑定到表单视图的事件 DataBound 中,这样您将获得您想要获取的准确数据。将以下代码放入 FormView1_DataBound 事件中。

    Repeater r = ((Repeater)FormView1.FindControl("repeater1"));
    r.DataSource = GetMyData();
    r.DataBind();
    

    也许这个解决方案可以帮助你....

    【讨论】:

    • 是的,我可以将转发器放在表单视图的数据绑定中,但我仍然需要一种方法来让 FormView 租用它的 ItemTemplte。如果没有 FormView1.DataSource = HardCodedData 它仍然无法工作,因为中继器不会在那里。知道如何让 ItemTemplate 呈现而不用假数据伪造它。
    • 你能告诉我你到底想做什么,这样我就很容易理解你的问题。
    • 我按照您的建议使用了 DataBound,它工作正常。问题出在中继器内部的代码上。
    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多