RenderContents和Render区别
来源:互联网 发布:php开源后台 编辑:程序博客网 时间:2024/05/06 02:50
Render() 方法基本上控制着 WebControl 的整个输出。默认情况下,Render() 方法实际上会依次调用 RenderBeginTag()、RenderContents() 以及 RenderEndTag()。
RenderContents 方法以呈现开始和结束标记之间的控件内容。
CreateChildControls方法和AddAttributesToRender的区别:
AddAttributesToRender方法:只是添加客户端HTML Tag的属性而已,如颜色、单击事件。
writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "alert('Test');");
base.AddAttributesToRender(writer);
CreateChildControls方法:生成子控件,如一个WebControl里有个属性为Collection,那这个属性就可以用子控件。
---------------------------
protected override void Render(HtmlTextWriter output)
{
CreateChildControls();
base.Render(output);
}
protected override void CreateChildControls()
{
Controls.Clear();
ClearChildViewState();
this.BuildControlHierarchy();
}
private void BuildControlHierarchy()
{
Table table = new Table();
table.BorderStyle = BorderStyle.None;
table.Width = Unit.Parse("620px");
table.Height = Unit.Parse("25px");
TableRow row = new TableRow();
table.Rows.Add(row);
TableCell cellBar = new TableCell();
BuildPagerUI(cellBar);
row.Controls.Add(cellBar);
Controls.Add(table);
}
private void BuildPagerUI(TableCell cell)
{
bool isValidPage = (PageIndex >=0 && PageIndex <= PageCount-1);
bool canMoveBack = (PageIndex >0);
bool canMoveForward = (PageIndex < PageCount-1);
//添加首页按钮
LinkButton first = new LinkButton();
first.ID = "first";
first.Click += new EventHandler(first_Click);
first.Text = "首页";
first.Enabled = isValidPage && canMoveBack;
cell.Controls.Add(first);
cell.Controls.Add(new LiteralControl(" "));
//添加上一页按钮
LinkButton prev = new LinkButton();
prev.ID = "Prev";
prev.Click += new EventHandler(prev_Click);
prev.Text = "上一页";
prev.Enabled = isValidPage && canMoveBack;
cell.Controls.Add(prev);
cell.Controls.Add(new LiteralControl(" "));
//添加下一页按钮
LinkButton next = new LinkButton();
next.ID = "Next";
next.Click += new EventHandler(next_Click);
next.Text = "下一页";
next.Enabled = isValidPage && canMoveForward;
cell.Controls.Add(next);
cell.Controls.Add(new LiteralControl(" "));
//添加末页按钮
LinkButton last = new LinkButton();
last.ID = "Last";
last.Click += new EventHandler(last_Click);
last.Text = "末页";
last.Enabled = isValidPage && canMoveForward;
cell.Controls.Add(last);
cell.Controls.Add(new LiteralControl(" "));
//添加当前页和总页码
Label lbl = new Label();
lbl.ID = "label";
lbl.Text = "页次:" + (this.PageIndex + 1).ToString() + "/" + this.PageCount.ToString() + " 页" + " " + this.PageSize.ToString() + "条记录/页 共" + this.TotalCount.ToString() + "条记录 跳转到>>";
cell.Controls.Add(lbl);
cell.Controls.Add(new LiteralControl(" "));
//添加页码
DropDownList pageList = new DropDownList();
pageList.ID = "PageList";
pageList.AutoPostBack = true;
pageList.SelectedIndexChanged += new EventHandler(PageList_Click);
if (PageCount <=0 || PageIndex == -1)
{
pageList.Items.Add("No Pages");
pageList.Enabled = false;
pageList.SelectedIndex = 0;
}
else
{
for(int i=1; i<=PageCount; i++)
{
ListItem item = new ListItem(i.ToString(), (i-1).ToString());
pageList.Items.Add(item);
}
pageList.SelectedIndex = PageIndex;
}
cell.Controls.Add(pageList);
}
- RenderContents和Render区别
- Render RenderContents RenderControl 三个方法的区别
- 转:Render RenderContents RenderControl 三个方法的区别
- render和redirect_to区别
- React.render和reactDom.render的区别
- React.render和reactDom.render的区别
- React.render和reactDom.render的区别
- app.render和res.render的区别
- Rails Render和Redirect_to区别
- shade 和 render的区别
- Yii 中,render 和 renderPartial 的区别。
- Yii 中,render 和 renderPartial 的区别。
- Yii render和renderPartial的区别
- Yii中render和renderPartial的区别
- Yii中render和renderPartial的区别
- Django中render和render_to_response的区别
- ZendFramework中render、_forward 、_redirect 的区别和传参
- Express中res.render和res.redirect的区别
- Qt 中一些常用类的中文说明
- 免费SSH Shell账号
- ASP.NET 2.0中GridView无限层复杂表头的实现
- C++ 之Boost学习笔记--Linux下编程
- SQL查询数据库中每张表的记录数
- RenderContents和Render区别
- Swing+JDBC实现增删查改
- oracle 大数据查询优化的方案
- 程序打包
- 春天的邂逅
- 会议室预定系统数据库文件BookRoom
- 大批量数据更新
- 哇卡卡卡~今天Qt第一个原创程序调试成功
- JAVA+Swing +sql 分页代码