帮忙写个能带模板的自定义控件,来者有分,急啊?

黑暗的救赎 2005-12-24 01:47:53
webform1.aspx

<igmisc:WebPanel id="WebPanel1" runat="server">
<Template>
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
</Template>
</igmisc:WebPanel>

webform1.aspx.cs

WebPanel1.FindControl("TextBox1") = "ccccccccccc";



在动态修改了TextBox1的值以后,在生成控件的时候如何得到改变的控件!
...全文
194 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
saucer 2005-12-25
  • 打赏
  • 举报
回复
你这么做不是很有意义,但为示范起见,把FindControl改成

public override Control FindControl(string id)
{
EnsureChildControls();
//TemplateItem ti = new TemplateItem();
//ItemTemplate.InstantiateIn(ti);
return this.Controls[0].FindControl(id);
}
califord 2005-12-25
  • 打赏
  • 举报
回复
关注
zxf_hay 2005-12-25
  • 打赏
  • 举报
回复
oh ,my god 还有钻石级别的高人,那是啥级别
billjoy 2005-12-25
  • 打赏
  • 举报
回复
up接分!钻石~~~~~思归老大,PF!!!
黑暗的救赎 2005-12-24
  • 打赏
  • 举报
回复
代码如上,哪位高人给点意见
黑暗的救赎 2005-12-24
  • 打赏
  • 举报
回复
我把我写的代码帖出来
1-----------控件cs --------------
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Collections;
using System.ComponentModel;

namespace WebControlLibrary2
{
/// <summary>
/// webpanel 的摘要说明。
/// </summary>
[
ParseChildren(true)
]
public class webpanel : System.Web.UI.Control,INamingContainer
{
private ITemplate _itemTemplate = null;

[
TemplateContainer(typeof(TemplateItem))
]
public ITemplate ItemTemplate
{
get
{
return _itemTemplate;
}
set
{
_itemTemplate = value;
}
}
public override Control FindControl(string id)
{
TemplateItem ti = new TemplateItem();
ItemTemplate.InstantiateIn(ti);
return ti.FindControl(id);
}

// override to create repeated items
protected override void CreateChildControls()
{
TemplateItem ri = new TemplateItem();
ItemTemplate.InstantiateIn(ri);
this.Controls.Add(ri);
}
protected override void OnDataBinding(EventArgs e)
{
}
}
public class TemplateItem : Control, INamingContainer
{
public TemplateItem()
{
}


}

}
2-------------------webform.aspx
<form id="Form1" method="post" runat="server">
<cc1:webpanel id="Webpanel1" runat="server">
<ITEMTEMPLATE>Value:
<asp:textbox id=MyValue runat="server" Text="11111111111111">
</asp:textbox>
<HR align="left" width="200">qqqqqqqqqqqqqqqqq
</ITEMTEMPLATE>
</cc1:webpanel>
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 296px; POSITION: absolute; TOP: 136px" runat="server"
Text="Button"></asp:Button>
</form>
3------------------webform.aspx.cs-----------
if (!IsPostBack)
{


((TextBox)Webpanel1.FindControl("MyValue")).Text="dsdsfdsfdsf";
TextBox tc = (TextBox)Webpanel1.FindControl("MyValue");

}
---------------------------------
格式有点乱
webform.aspx.cs里,我改了MyValue的Text,显示不出来
怎么写才能达到我要的效果
黑暗的救赎 2005-12-24
  • 打赏
  • 举报
回复
可能我写错了
webform1.aspx

<igmisc:WebPanel id="WebPanel1" runat="server">
<Template>
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
</Template>
</igmisc:WebPanel>

webform1.aspx.cs

((TextBox)WebPanel1.FindControl("TextBox1")).Text = "ccccccccccc";



在动态修改了TextBox1的值以后,怎么实现把修改了以后的TextBox1的属性显示出来!
xooe 2005-12-24
  • 打赏
  • 举报
回复
没听明白你想做什么
bosswolf 2005-12-24
  • 打赏
  • 举报
回复
变量=(TextBox)e.Item.FindControl("TextBox1");
是不是这样呀。
saucer 2005-12-24
  • 打赏
  • 举报
回复
look into the template example in Custom Controls 101

http://samples.gotdotnet.com/quickstart/aspplus/doc/webctrlauthoring.aspx#templatedlist

you control should provide a way to go through controls in a template
bosswolf 2005-12-24
  • 打赏
  • 举报
回复
我想帮你。但听不懂你说什么
xczgb 2005-12-24
  • 打赏
  • 举报
回复
顶啊。。关注中。
黑暗的救赎 2005-12-24
  • 打赏
  • 举报
回复
兄弟们,顶哈嘛~~
lzt7 2005-12-24
  • 打赏
  • 举报
回复
呵呵,mark
c11_11_11 2005-12-24
  • 打赏
  • 举报
回复
我来接分

62,041

社区成员

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

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

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

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