現在有個項目開始使用ASP.NET 2.0開發,在開發過程中關於GridView的使用的一些零星的記錄
1.TemplateField中的綁定
<ItemTemplate><%# Eval("OCompany.Name") %></ItemTemplate>
</asp:TemplateField>
2.通過CheckBox得到選擇行的主健值(GridView支持多主健)
{
//EnsureChildControls();
GridView gvlist1 = (GridView)this.Controls[0].FindControl("gvlist");
int icount = gvlist1.Rows.Count;
string id = string.Empty;
for (int i = 0; i < gvlist1.Rows.Count; i++)
{
CheckBox cb = (CheckBox)gvlist1.Rows[i].FindControl("cb_id");
//得到選中行的信息
if (cb.Checked == true)
{
DataKey dkr = gvlist1.DataKeys[i];
id = dkr.Value.ToString();
}
}
return id;
}
3.動態創建TemplateField
{
TemplateField tf = new TemplateField();
tf.HeaderText = att.HeaderText;
tf.HeaderStyle.Width = Unit.Parse(att.Width);
ColumnTemplate temp = new ColumnTemplate();
temp.Column = att.Column;
tf.ItemTemplate = temp;
gvlist.Columns.Add(tf);
}
{
//第一個模板列
public void InstantiateIn(Control container)
{
LiteralControl l = new LiteralControl();
l.DataBinding += new EventHandler(this.OnDataBinding);
container.Controls.Add(l);
}
public void OnDataBinding(object sender, EventArgs e)
{
LiteralControl lt = (LiteralControl)sender;//LiteralControl發送綁定請求
GridViewRow container = (GridViewRow)lt.NamingContainer;
lt.Text = DataBinder.Eval(container.DataItem, column).ToString();
}
}