Не могу передать переменную в пользовательский элемент управления - PullRequest
1 голос
/ 17 июня 2010

Я использую приведенный ниже пример кода и у меня возникла проблема, когда я не могу передать значение Request.RawUrl в объект, расширяющий объект Control (класс Test ниже).

Когда я использую строку:

<Test1:Test runat="server" ID="testControl" Target="<%# Request.RawUrl %>"></Test1:Test>

Я считаю, что свойство Target никогда не вызывается.

Если я использую эту строку вместо:

<Test1:Test runat="server" ID="testControl" Target="<%# Request.RawUrl %> test"></Test1:Test>

передается строковое значение "<%# Request.RawUrl %> test"в свойство Target.

Если я использую эту строку, как объясняется во многих публикациях в Интернете:

<Test1:Test runat="server" ID="testControl" Target="<%= Request.RawUrl %>"></Test1:Test>

строковое значение "<%= Request.RawUrl %>" передается в свойство Target.

Мне нужно получить значение Request.RawUrl, переданное в свойство Target моего объекта управления Test.У кого-нибудь есть идеи, где я ошибаюсь?


Контроль:

namespace Testing
{
    public class Test : Control
    {
        public Test()
        {

        }

        private string target;

        public string Target
        {
            get { return target; }
            set { target = value; }
        }
    }
}

Контроль пользователя:

<%@ Control Language="C#" Debug="true" %>
<%@ Register TagPrefix="Test1" Assembly="Test" Namespace="Testing" %>

<Test1:Test runat="server" ID="testControl" Target="<%# Request.RawUrl %>"></Test1:Test>

1 Ответ

2 голосов
/ 17 июня 2010

Вам необходимо вызвать testControl.DataBind () в коде. <% # устанавливается при вызове DataBind (). <% = эквивалентно Response.Write (). </p>

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