我試圖在ListView的LayoutTemplate中使用數據綁定表達式(例如<%# PageProperty %>
)。在回發的ListView的LayoutTemplate內的數據綁定表達式
資源我看:
Access a control inside a the LayoutTemplate of a ListView
Get public string in codebehind into LayoutTemplate of ListView
http://forums.asp.net/p/1201992/3319344.aspx
http://www.codeproject.com/Articles/42962/Databind-Expression-in-ListView-LayoutTemplate
我能順利拿到數據綁定表達式同時使用的初始數據綁定工作以下方法:
protected void lvwExample_OnLayoutCreated(object sender, EventArgs e) {
lvwExample.Controls[0].DataBind();
}
和
protected void lvwExample_OnLayoutCreated(object sender, EventArgs e) {
ListView lv = lvwExample ;
Control template = new Control();
lv.LayoutTemplate.InstantiateIn(template);
template.DataBind(); // resolve the problem
// remove current layout (without databind expressions)
lv.Controls.RemoveAt(0);
//add again the layout but with databound content
lv.Controls.Add(template);
}
的問題是,當列表視圖是反彈(listView.DataBind()
)在回發數據綁定表達式從佈局模板丟失。 之前的數據綁定表達式現在是模板中的靜態文本。
它工作正常時,ViewState被禁用的ListView,但ViewState是在這種情況下,需要維護分頁和排序(我相信視圖狀態是必需的,但我沒有真的看着它,可能處於控制狀態)。
我能做些什麼來得到這個工作?