Ошибка выполнения Microsoft JScript: «getCities» не определен

Я использую RadComboBox в UserControll. Я хочу связать все города с флажками в RadComboBox. Для этого я написал код следующим образом:

ДЛЯ ASPX: -

<script type="text/javascript">
function getItemCheckBox(item) {
    debugger;
    //Get the 'div' representing the current RadComboBox Item.
    var itemDiv = item.get_element();

    //Get the collection of all 'input' elements in the 'div' (which are contained in the Item).
    var inputs = itemDiv.getElementsByTagName("input");

    for (var inputIndex = 0; inputIndex < inputs.length; inputIndex++) {
        var input = inputs[inputIndex];

        //Check the type of the current 'input' element.
        if (input.type == "checkbox") {
            return input;
        }
    }

    return null;
}
function check() {
    debugger;
    alert("hello");
}
function getCities() {

    var combo = $find("<%= cmbCity.ClientID %>");
    var hdnAddressType = document.getElementById("<%= hfGeoLocation.ClientID %>");
    var items = combo.get_items();
    var selectedItemsTexts = "";
    var selectedItemsValues = "";
    var itemsCount = items.get_count();
    for (var itemIndex = 0; itemIndex < itemsCount; itemIndex++) {
        var item = items.getItem(itemIndex);

        var checkbox = getItemCheckBox(item);

        //Check whether the Item's CheckBox) is checked.
        if (checkbox.checked) {
            selectedItemsTexts += item.get_text() + ", ";
            selectedItemsValues += item.get_value() + ",";
        }
    }

    hdnAddressType.value = selectedItemsValues;

    selectedItemsTexts = selectedItemsTexts.substring(0, selectedItemsTexts.length - 2);
    selectedItemsValues = selectedItemsValues.substring(0, selectedItemsValues.length - 2);

    //Set the text of the RadComboBox with the texts of the selected Items, separated by ','.
    combo.set_text(selectedItemsTexts);

    //Set the comboValue hidden field value with values of the selected Items, separated by ','.
    combo.set_value(selectedItemsValues);

    //Clear the selection that RadComboBox has made internally.
    if (selectedItemsValues == "") {
        combo.clearSelection();
    }
}
</script>

<div>
      <telerik:RadComboBox ID="cmbCity" runat="server" Height="200px" ExpandDirection="Up"
                    Width="130px">
                    <ItemTemplate>
                        <div id="chk">
                            <asp:CheckBox ID="chkCity" runat="server" onclick="getCities();" Text='<%#Eval("CityName")%>' />
                        </div>
                    </ItemTemplate>
     </telerik:RadComboBox>
     <asp:HiddenField ID="hfGeoLocation" runat="server" />
</div>

И в коде позади. Следующий код: -

protected void Page_Load(object sender, EventArgs e)
{
    List<usp_SelectCmbCityResult> lstCity = null;
    if (!Page.IsPostBack)
    {
        lstCity = new CityDomain().SelectCmbCity();
        cmbCity.DataSource = lstCity;
        cmbCity.DataValueField = "CityName";
        cmbCity.DataTextField = "CityName";
        cmbCity.DataBind();
        MenUs.Common.Common.BindRadioButtonList(ref rbtnOrientation, typeof(MenUs.Common.Enums.Orientation));
        MenUs.Common.Common.BindRadioButtonList(ref rbtnTargetGender, typeof(MenUs.Common.Enums.TargetGender));
        MenUs.Common.Common.BindRadioButtonList(ref rbtnTargetMarital, typeof(MenUs.Common.Enums.TargetMaritalStatus));
    }
}

Когда я нажимаю/флажок, я получаю ошибку

Ошибка выполнения Microsoft JScript: 'getCities' не определено

Подскажите пожалуйста что не так?? Заранее спасибо.....


Проблема решена. На самом деле проблема была в MasterPage, поэтому возникла эта ошибка. Всем спасибо за поддержку....


person Pratik Bhatt    schedule 25.07.2011    source источник
comment
Вы получаете эту ошибку в IIS или ASP.NET Development Server?   -  person Răzvan Flavius Panda    schedule 25.07.2011
comment
@ Răzvan Panda: на сервере разработки ASP.NET, сэр   -  person Pratik Bhatt    schedule 25.07.2011
comment
Тег script закрыт в вашем коде, верно?   -  person Răzvan Flavius Panda    schedule 25.07.2011
comment
И используете ли вы ScriptManager на странице?   -  person Răzvan Flavius Panda    schedule 25.07.2011
comment
@Răzvan Panda: Я, сэр, тег Scropt закрыт, и я не использую диспетчер сценариев. Но страница, которая будет содержать этот UserControll, это MAsterPage, содержит RadScriptManager.   -  person Pratik Bhatt    schedule 25.07.2011
comment
Посмотрите, может ли это вам помочь: encosia.com/updated- ваш-webconfig-но-sys-все еще не определен   -  person Răzvan Flavius Panda    schedule 25.07.2011
comment
@Răzvan Panda Thnx, но мой сценарий отличается от упомянутой ссылки.   -  person Pratik Bhatt    schedule 26.07.2011


Ответы (1)


Было бы лучше видеть код Javascript так, как его видит браузер, а не со встроенными тегами ASP.

Эти теги ASP должны быть преобразованы в строки; Я подозреваю, что проблема, вероятно, заключается в одной из этих строк. Я не знаю, каковы значения cmbCity.ClientID или hfGeoLocation.ClientID, но возможно, что они вызывают сбой кода. Если они содержат кавычки или перевод строки, ваш код Javascript будет недействительным.

Вы должны использовать функцию просмотра исходного кода браузера, чтобы увидеть, как код выглядит в браузере. Это, вероятно, покажет вам, в чем проблема.

person Spudley    schedule 25.07.2011