ASP.NET Usercontrol属性值未运行<%=标记

时间:2011-04-27 10:54:26

标签: asp.net vb.net user-controls

我有一个带有“ClientScript”属性的usercontrol,在我使用usercontrol的aspx文件中,我将值设置为=document.getElementsByName('<%=ReportViewer1.ClientId %>$ctl01$ctl07$ctl00$ctl00$ctl00')[0].click(); return false;

这里的问题是,它被遗弃地传递给属性,而不是先解析并替换为ClientID ..

我将相同的客户端应用于按钮OnClientClick并且在那里工作......

我必须对属性应用某种属性才能使其正常工作吗?

这是我的代码:

Usercontrol.ascx.vb

<ParseChildren(True), PersistChildren(False), Themeable(False)>
Public Class CommandPanel
    Inherits System.Web.UI.UserControl

    Private mClientScript as string
    <Themeable(False), DefaultValue("")> _
    Public Property ClientScript As String
        Get
            Return mClientScript
        End Get
        Set(ByVal value As String)
            mClientScript = value
        End Set
    End Property
End Class

Page.aspx

<%@ Register src="UserControls/CommandPanel.ascx" tagname="CommandPanel" tagprefix="uc1" %>
......
<uc1:CommandPanel ID="CommandPanel1" runat="server" ClientScript="document.getElementsByName('<%= ReportViewer1.ClientId %>$ctl01$ctl07$ctl00$ctl00$ctl00')[0].click(); return false;" />
......

注意:我知道即时保存到本地变量,并且会在重新加载时清除等等,但这不是问题...

1 个答案:

答案 0 :(得分:1)

&lt;%=表达式不能用于服务器端控件。您可以使用&lt;%#语法(然后必须在用户控件上调用DataBind)或Attributes属性。