Значение свойства ASP.NET Usercontrol не выполняется <% = разметка - PullRequest
0 голосов
/ 27 апреля 2011

Ну, у меня есть usercontrol со свойством "ClientScript" и в aspx-файле, где я использую usercontrol, я установил значение =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 Ответ

1 голос
/ 27 апреля 2011

<% = выражения нельзя использовать в элементах управления на стороне сервера.Вы можете использовать <% # синтаксис (тогда вы должны вызывать DataBind для пользовательского элемента управления) или <a href="http://msdn.microsoft.com/en-us/library/7a9d6h4f.aspx" rel="nofollow"> Атрибуты свойство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...