ASP.NET自定义控件 第八天 显示多个条目星级评分的列表控件
bject dataItem)
{
if (!string.IsNullOrEmpty(DataTextField))
{
string txt = Convert.ToString(DataBinder.GetPropertyValue
(dataItem, DataTextField));
cell.Text = txt;
}
}
/// <summary>
/// ????????????
/// </summary>
/// <param name="cell"></param>
/// <param name="dataItem"></param>
private void BindValueCell(TableCell cell, object dataItem)
{
Panel panCur = (Panel)cell.Controls[0].Controls[0];
object o = null;
if (!String.IsNullOrEmpty(DataValueField))
o = DataBinder.GetPropertyValue(dataItem, DataValueField);
else
return;
int score = Convert.ToInt32(o);
string width = score * 16 + "px";
panCur.Style.Add(HtmlTextWriterStyle.Width, width);
}
protected override void Render(HtmlTextWriter writer)
{
PrepareControlForRender();
base.Render(writer);
}
public void PrepareControlForRender()
{
if (Controls.Count != 1)
return;
Table t = (Table)Controls[0];
t.CopyBaseAttributes(this);
if (ControlStyleCreated)
t.ApplyStyle(ControlStyle);
t.Rows[0].Cells[0].MergeStyle(TitleStyle);
t.Rows[1].Cells[0].MergeStyle(SubTitleStyle);
// Apply style to the labels that render team names
for (int i = 2; i < Items.Count; i++)
{
// Style team labels
t.Rows[i].Cells[0].ApplyStyle(LabelStyle);
}
}
3.10 在页面中声明并定义自定义控件,预览结果。
3.11 编写后置代码,预览结果:
4. 总结 复杂绑据绑定控件可以通过扩展CompositeDataBindControl类实现,该类有一 个特殊的CreateChildControls方法实现数据的绑定和恢复,在下一次任务里,我 们将尝试扩展DataList和GridView以实现自定义分页控件。 本系列文章配套源码 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |