自定义控件相关属性如何修改??

lovingkiss 2008-05-12 01:49:16

Public Property AAA() As String
Get
EnsureChildControls()
If Not ViewState("AAA") Is Nothing Then
Return CType(ViewState("AAA"), String)
Else
Return ""
End If
End Get
Set(ByVal Value As String
EnsureChildControls()
ViewState("AAA") = Value
Me.BBB="测试!" '这里!
End Set
End Property

Public Property BBB() As String
Get
EnsureChildControls()
If Not ViewState("BBB") Is Nothing Then
Return CType(ViewState("BBB"), String)
Else
Return ""
End If
End Get
Set(ByVal Value As String)
ViewState("BBB") = Value
End Set
End Property


现象:
1、两个属性,修改属性AAA,要求BBB跟着改变;
2、页面设计的时候,BBB是跟着改变的,但是你进入Html模式
<... runat="server" AAA="确定"/></td>
会发现BBB更本没有变化,这就会造成,关闭之后,再次打开属性BBB丢失。。。

真是郁闷~~难道属性之间就无法控制彼此么??
...全文
233 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoushii 2008-05-15
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 lovingkiss 的回复:]
问题肯定不在这些地方的——内存是修改了的,但是没有写入页面;造成了无法保存;
[/Quote]
参见第二条。
在加载和保存试图状态阶段出现的问题吧?
lovingkiss 2008-05-13
  • 打赏
  • 举报
回复
现在的问题,不是如何进行设置
——而是修改后无法保存状态;无法写入ViewState;而且这些是设计期就要实现的;
BS的保存和CS有很大的不同的。CS很容易就可以实现了的;

不过还是感谢楼上的兄弟;
ndsc_cherry 2008-05-13
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 shoushii 的回复:]
回答的侧重点偏了。
应该是这样的,你现在的属性分为两种,一种为持久化的,也就是定义在控件属性上的。

HTML code<asp:Button id="btn" runat="server" />


那么id和runat属性是持久化的,当调用控件构造器时进行初始化。

这些可能不需要ViewState就能保持状态。

你的错误可能发生在:
1、你更改a属性后同时更改b属性,之后b从新进行了实例化。
2、页面加载的环节中会有跟踪视图状态、加载视图状态、和保…
[/Quote]
lovingkiss 2008-05-13
  • 打赏
  • 举报
回复
问题肯定不在这些地方的——内存是修改了的,但是没有写入页面;造成了无法保存;
shoushii 2008-05-13
  • 打赏
  • 举报
回复
回答的侧重点偏了。
应该是这样的,你现在的属性分为两种,一种为持久化的,也就是定义在控件属性上的。
<asp:Button id="btn" runat="server" />

那么id和runat属性是持久化的,当调用控件构造器时进行初始化。

这些可能不需要ViewState就能保持状态。

你的错误可能发生在:
1、你更改a属性后同时更改b属性,之后b从新进行了实例化。
2、页面加载的环节中会有跟踪视图状态、加载视图状态、和保存视图状态。对应的方法可以重载,来实现自定义的状态管理。
changjiangzhibin 2008-05-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lovingkiss 的回复:]
引用 5 楼 changjiangzhibin 的回复:
试试,
写个方法,每次用到BBB时就根据相关规则关联依赖属性AAA


汗~~如果这样,就不用作相关设置了阿;
[/Quote]
试试:在自定义控件中使用委托实现依赖关联
mengxj85 2008-05-12
  • 打赏
  • 举报
回复
我现在也正在研究这个,希望能看到多点的资料
lovingkiss 2008-05-12
  • 打赏
  • 举报
回复
楼上的兄弟,这是BS的么?你验证过?呵呵~~
shoushii 2008-05-12
  • 打赏
  • 举报
回复
一个意思而已。

public class Test
{
public delegate void PropertyChangeEventHandler(object source, EventArgs e);
public event PropertyChangeEventHandler PropertyChange;

public void OnPropertyChange(EventArgs e)
{
if (PropertyChange != null)
{
PropertyChange(this, e);
}
}



int number;

public int Number
{
get
{
return number;
}
set
{
number = value;
OnPropertyChange(EventArgs.Empty);
}
}
string car;

public string Car
{
get { return car; }
set { car = value; }
}
}
protected override void OnInit(EventArgs e)
{
Test t = new Test();
t.PropertyChange += new Test.PropertyChangeEventHandler(PropertyChange);
base.OnInit(e);
}
public void PropertyChange(object source, EventArgs e)
{
//更改更新逻辑
}
lovingkiss 2008-05-12
  • 打赏
  • 举报
回复
楼上的兄弟,什么和什么啊;我又不要联动——的东西,呵呵~~
lihuinihao6315 2008-05-12
  • 打赏
  • 举报
回复
该一个 动另 一个. 在自定义控件 的protected void Page_Load(object sender, EventArgs e) 事件里 AjaxPro.Utility.RegisterTypeForAjax(typeof(UC060));

txtName.Style.Add("display", "none");

imgbtn.Attributes.Add("onclick", "WindowOpen('txtNo','txtName'," + "\"" + StrSql + "\"," + "'" + StrUrl + "'," + "'" + StrNo + "'," + "'" + StrName + "'" + ",'" + UserControlName + "','" + HttpUtility.UrlEncode(StrPageTitle) + "','" + strOrderBy + "','" + strGroupBy + "','"+ Xv +"','"+ Cqt +"','"+ Zyq +"')");//')");
}
加 JAVASCRIPT 事件.
lovingkiss 2008-05-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 changjiangzhibin 的回复:]
试试,
写个方法,每次用到BBB时就根据相关规则关联依赖属性AAA
[/Quote]

汗~~如果这样,就不用作相关设置了阿;
changjiangzhibin 2008-05-12
  • 打赏
  • 举报
回复
试试,
写个方法,每次用到BBB时就根据相关规则关联依赖属性AAA
lovingkiss 2008-05-12
  • 打赏
  • 举报
回复
一样的阿,没什么差异a——如果切换或者保存就要失效,那么这种做法就不是正确的阿;

tzwhyqq 2008-05-12
  • 打赏
  • 举报
回复
这个问题你可以试着在里面定义个属性来改过,不过这种方法是在属性里面该的去html里面估计也不行。
C#代码比如
public string aaa


set
{
bbb=xxx;
aaa=xxx;

}
lovingkiss 2008-05-12
  • 打赏
  • 举报
回复
例如:GridView自定义样式的时候,很多属性都回跟随修改的;
这是可以做得到的,但是不知道应该怎么去做;
sjett 2008-05-12
  • 打赏
  • 举报
回复
html界面不支持设计期支持

62,243

社区成员

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

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

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

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