Ошибка выполнения Microsoft JScript: «getCities» не определено - PullRequest
0 голосов
/ 25 июля 2011

Я использую 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));
    }
}

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

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

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


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

1 Ответ

0 голосов
/ 25 июля 2011

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

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

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

...