?? datalist 數(shù)據(jù)綁定問(wèn)題.txt
字號(hào):
主 題: DataList數(shù)據(jù)綁定的問(wèn)題
能不能不在模板里面用<%#DataBinder.Eval(Container.DataItem, “fieldname")%>提取綁定的數(shù)據(jù),而是放label在上面,然后在后臺(tái)寫(xiě)代碼提取?
如果行,那在哪個(gè)事件內(nèi)進(jìn)行操作?
------------------------------------------------------------------------------
1)
當(dāng)然可以。
如果你的label在datalist內(nèi),那可以在itemDataBound事件里做:
ctype(e.item.findControl("labelName"),label).text="....."
如果在datalist外,就在page_load里做:
labelName.text="...."
------------------------------------------------------------------------------
2)
好象ItemTemplate不行吧
------------------------------------------------------------------------------
3)
一定可以
------------------------------------------------------------------------------
4)
有具體例子嗎
------------------------------------------------------------------------------
5)
<asp:Label runat="server" id="Label1" Text='<%#DataBinder.Eval(Container.DataItem, “fieldname")%>' />
讀取:
((Label)DataList1.Items[0].FindControl("Label1")).Text
------------------------------------------------------------------------------
6)
能不能不用<%#DataBinder.Eval(Container.DataItem, “fieldname")%>
直接在((Label)DataList1.Items[0].FindControl("Label1")).Text賦值?
------------------------------------------------------------------------------
7)
建議不要在html代碼中邦定數(shù)據(jù),應(yīng)在代碼層邦定
private void Page_Load如下
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
//邦定數(shù)據(jù)原
this.DataList1.DataSource = CreateSource();
this.DataList1.DataBind();
}
}
private void DataList1_ItemDataBound中寫(xiě)如下代碼
private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
DataRowView MyDataRowView=(DataRowView)e.Item.DataItem;
((Label)e.Item.FindControl("Name")).Text=MyDataRowView.Row["姓名"].ToString();
}
//Name為DataList的模板中的標(biāo)簽控件名
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -