передать переменную в пользовательский элемент управления - PullRequest
0 голосов
/ 10 февраля 2012

Я создал пользовательский элемент управления для каскадирования двух выпадающих списков "провинция" и "город". Но каждый раз, когда я запускаю его, появляется сообщение об ошибке «Произошло необработанное исключение типа« System.StackOverflowException »» Вот мой контрольный код пользователя

public partial class cascadingdropdownlist : System.Web.UI.UserControl
{
    public string province_selectedvalue
    {

        set
        {
            string province_selectedvalue = value;
        }
        get
        {
            return city_selectedvalue;
        }
    }

    public string city_selectedvalue
    {
        set
        {
            string city_selectedvalue = value;
        }
        get
        {
            return city_selectedvalue;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        string a = province_selectedvalue;
        ............
    }

}

На странице хоста

<uc1:cascadingdropdownlist ID="province_city" runat="server" OnPreLoad="province_city_OnPreLoad"/>

Код позади

protected void province_city_OnPreLoad(object sender, EventArgs e)
    {
        province_city.province_selectedvalue = myReader["Province/State"].ToString();
        province_city.city_selectedvalue = myReader["City"].ToString();
    }

Произошла ошибка при вызове пользовательского элемента управления метода Province_selectedvalue.get. почему я не понимаю почему? Любой может помочь мне, большое спасибо

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Проблема в вашей собственности:

public string city_selectedvalue 
{ 
    set 
    { 
        string city_selectedvalue = value; 
    } 

Вызывает сеттер (или геттер!) На city_selectedvalue снова и снова, что приводит к переполнению стека.

Замените свою собственность этим

public string city_selectedvalue { get; set; }

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

0 голосов
/ 10 февраля 2012

Вы получаете эту ошибку, потому что код находится в бесконечном цикле. Когда вы вызываете Province_selectedvalue.get, вы звоните city_selectedvalue get. И у вас есть то же имя для свойства в переменной, которую вы вызываете, так что она вызывает то же самое снова и снова.

Измените свой код на

public string city_selectedvalue { get; set; }

А

public string province_selectedvalue { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...