to 思归

zhongkeruanjian 2003-08-25 11:58:04
昨天那个自定义的派生于DATALIST的可分页的SUNDATALIST的问题
你建议我看的例子,我已经看了,谢谢!,
今天重载了RENDER,
如下:
override protected void Render(HtmlTextWriter writer)
{

RenderContents(writer);
btnPrev.RenderControl(writer);

btnMore.RenderControl(writer);

}
我在重载的 CreateControlHierarchy 方法里
添加了两个按钮控件
如下:
override protected void CreateControlHierarchy(bool useDataSource)
{
base.CreateControlHierarchy(useDataSource);
btnPrev = new ImageButton();

btnPrev.Click += new ImageClickEventHandler(PreviousClicked);
Controls.Add(btnPrev);

btnMore = new ImageButton();

btnMore.Click += new ImageClickEventHandler(MoreClicked);
Controls.Add(btnMore);
}

问题解决!
但是我想不通,为什么在CreateControlHierarchy 方法里添加的两个按钮控件
在DATALIST.RENDER()里会出现类型转换无效这个问题呢?
我重载的RENDER里我自己为什么还要手工RENDER按钮呢?
请指教!
...全文
145 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjcking 2003-08-25
  • 打赏
  • 举报
回复
up
saucer 2003-08-25
  • 打赏
  • 举报
回复
I forgot the details, but if you have used
Controls.Add(btnPrev);

then you shouldn't need to do
btnPrev.RenderControl(writer);

that is, you don't need to override Render at all
saucer 2003-08-25
  • 打赏
  • 举报
回复
try the following:

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace CSDNControls
{
/// <summary>
/// Summary description for MyDataList.
/// </summary>
[ToolboxData("<{0}:MyDataList runat=server></{0}:MyDataList>")]
public class MyDataList : System.Web.UI.WebControls.DataList
{
Button btnPrev, btnNext;
protected override void CreateControlHierarchy(bool useDataSource)
{
base.CreateControlHierarchy(useDataSource);

DataListItem dli = new DataListItem(0, ListItemType.Item);

btnPrev = new Button();
btnPrev.Text = "Previous";
btnPrev.Click += new EventHandler(Button_Clicked);
dli.Controls.Add(btnPrev);

btnNext = new Button();
btnNext.Text = "Next";
btnNext.Click += new EventHandler(Button_Clicked);
dli.Controls.Add(btnNext);

Controls.Add(dli);
}

private void Button_Clicked(Object sender, EventArgs e)
{
Button btn = (Button)sender;
Page.Response.Write(btn.Text + " is clicked");
}

protected override void Render (HtmlTextWriter writer)
{
base.Render(writer);
//you still have to call the following, since the base.Render will not render them
btnPrev.RenderControl(writer);
btnNext.RenderControl(writer);
}
}
}
saucer 2003-08-25
  • 打赏
  • 举报
回复
I was wrong, inside DataList.Render method, it does some preparation (like applying styles) on the controls, i.e., Items, it probably tries to cast your buttons to DataListItem, but failed

it was ok in the above code of yours because you called
RenderContents(writer);

and bypassed the other methods
内容概要:本文提出了一种基于“空调-电动汽车”联合虚拟储能的海岛微电网优化调度方法,旨在解决海岛地区可再生能源消纳难与电力供应不稳定的问题。通过充分利用空调负荷的热惰性与电动汽车的灵活充放电能力,构建联合虚拟储能系统,等效替代物理储能装置,实现对风电、光伏等间歇性电源出力波动的平抑。研究建立了融合需求响应机制与多时间尺度调度框架的优化模型,并采用Matlab进行仿真验证。结果表明,该策略能够有效提升微电网对分布式能源的接纳能力,降低系统综合运行成本,增强供电可靠性与能源利用效率。; 适合人群:具备一定电力系统分析、优化建模及Matlab编程基础,从事微电网、综合能源系统、虚拟储能、需求响应等领域研究的科研人员与工程技术人员,特别适合研究生及以上学历的研究者。; 使用场景及目标:①应用于海岛、偏远孤岛等孤立微电网场景,提升可再生能源渗透率与系统韧性;②为高比例新能源接入的配电网提供低成本、高灵活性的虚拟储能解决方案;③实现空调与电动汽车等柔性负荷的协同优化,达成削峰填谷、降低能耗与运行成本的目标; 阅读建议:建议结合Matlab代码深入理解模型构建与求解过程,重点关注虚拟储能建模逻辑、温控负荷动态特性刻画、电动汽车充放电约束处理以及多时间尺度滚动优化的实现机制,可进一步拓展至碳交易、绿证激励等复合政策情景下的优化调度研究。

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧