〓〓〓 如何在客户端操作WebUserControl?

Sean918 2006-10-26 04:46:20
自己写了一个WebUserControl, 想在客户端操作
(VB.NET语法 跟C#差不多)

服务端代码:
Protected WithEvents test1 As WebUserControl1
Public webClientID1 As String

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
test1 = New WebUserControl1
webClientID1 = Me.test1.ClientID
End Sub


客户端代码:
function btn_onclick()
{
alert(document.getElementById(<%=webClientID1%>).style.backgroundColor);
}

<head><body>
<uc1:webusercontrol1 id="WebUserControl11" style="LEFT: 0px; POSITION: absolute; TOP: 0px" runat="server"></uc1:webusercontrol1>
</head></body>



如果服务端不写test1 = New WebUserControl1 就报 “test1 未定义”;
如果写了上面这句 就报
document.getElementById(<%=webClientID1%>).style.backgroundColor) 缺少对象

应该怎么正确使用?
...全文
161 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sean918 2006-10-26
  • 打赏
  • 举报
回复
哈 搞定了! 把 test1.colortd.clientid 传出来就行了!
Sean918 2006-10-26
  • 打赏
  • 举报
回复
我显示背景的元素是colortd ,但是我页面上有N个自定义的控件

我怎么得到document.getElementById ("colortd") 的ID?
minajo21 2006-10-26
  • 打赏
  • 举报
回复
document.getElementById 只能取基本的html元素,比如input div 等等

"<%=webClientID1%>" = test1 ,说明值已经传出来了,这么没问题,不过他是一个ascx,是由一些控件组成的,相当于一个基本控件的集合,所以不能用document.getElementById来取这个集合的。

你要用document.getElementById 来取这个控件里面某一个元素,比如table 或 div,取他的某个属性。getAttribute
Sean918 2006-10-26
  • 打赏
  • 举报
回复
在usercontrol里面添加了一个新的属性

Public ReadOnly Property bkColor()
Get
bkColor = Me.colortd.BgColor
End Get
End Property

colortd 是一个用来显示背景色的System.Web.UI.HtmlControls.HtmlTable

然后在js里面写:
alert(document.getElementById("<%=webClientID1%>").getAttribute("bkColor"));

报: 'document.getElementById(...)'为空或不是对象

难道这是没有传递成功的原因?
为什么alert("<%=webClientID1%>");出来的是 “test1”好像有传递成功了?

changlongbaobao 2006-10-26
  • 打赏
  • 举报
回复
c# & asp.net讨论群:32095860 欢迎有开发经验的朋友加入
Sean918 2006-10-26
  • 打赏
  • 举报
回复
还是不对

去掉 test1 = New WebUserControl1 后

alert("<%=webClientID1%>");出来的是 “test1” 似乎传递ID是成功的

但是 用document.getElementById("<%=webClientID1%>").style.backgroundColor 的时候就报

'document.getElementById(...)'缺少对象! 这算什么意思?
minajo21 2006-10-26
  • 打赏
  • 举报
回复
alert(document.getElementById("<%=webClientID1%>").style.backgroundColor);
minajo21 2006-10-26
  • 打赏
  • 举报
回复
test1 = New WebUserControl1

--------

这行不对的,你这样写了,找到的就不是你在页面上定义的那个控件了。
Sean918 2006-10-26
  • 打赏
  • 举报
回复
上面发错了 客户端定义的控件是:

<uc1:webusercontrol1 id="test1" style="LEFT: 0px; POSITION: absolute; TOP: 0px" runat="server"></uc1:webusercontrol1>

ID 是 test1

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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