Как я могу передать строку данных в программно загруженный пользовательский элемент управления в C # - PullRequest
0 голосов
/ 03 декабря 2008

Я написал пользовательский элемент управления, который возвращает некоторые специфические данные пользователя. Для загрузки пользовательского элемента управления я использую следующую строку кода:

UserControl myUC = (UserControl).Load("~/customUserControl.ascx");

Но как мне получить доступ к string user внутри пользовательского элемента управления myUC?

Ответы [ 4 ]

1 голос
/ 03 декабря 2008

Предположим, имя вашего пользовательского элемента управления "MyUserControl"

Попробуйте этот код:

MyUserControl myUC = (UserControl).Load("~/customUserControl.ascx") as MyUserControl;
string result = myUC.user;
1 голос
/ 03 декабря 2008

Давайте назовем ваш пользовательский контроль "Bob"

Если вы наследуете от UserControl в Бобе, то, я думаю, это безопасно:

Bob b = (Bob).Load("~/customUserControl.ascx");

Что касается пользовательской части, я не могу точно следовать тому, что вы хотите сделать, это «пользователь» в классе, где вы создаете пользовательский элемент управления «Bob» и хотите установить свойство в пользовательском элементе управления «Bob» Это наоборот?

Для первого вы должны создать свойство в вашем usercontrol.

class Bob : UserControl{
public string User { get; set;}
}

, а затем установите его после создания экземпляра "Bob".

b.User = theuser;
0 голосов
/ 03 декабря 2008

Спасибо, пока. Мой код точно такой же, как написано выше:

public partial class todo : System.Web.UI.UserControl
{
    private string mysecondteststring;
    public string setValue
    {
        get
        {
            return mysecondteststring;
        }
        set
        {
            mysecondteststring = value;
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // my code
    }
}

Но я не могу создать экземпляр опроса в своем коде веб-службы. Я что-то забыл?

-> Забыл добавить Reference на страницу ASPX, где пользовательский элемент управления загружается динамически. Теперь он работает с обычными страницами .aspx. Пример кода можно найти здесь

Кто-нибудь из вас знает, как пользовательские элементы управления также могут быть добавлены в веб-сервисы, потому что там нет справочного атрибута?

0 голосов
/ 03 декабря 2008

Вам нужно будет привести загруженный элемент управления к фактическому типу и использовать его открытое свойство:

MyUserControl myUCTyped = (MyUserControl)myUC;
myUCTyped.ThePublicProperty = "some value";
...