Как отключить выпадающий список в ASP.NET?

В Java, когда оператор «==» используется для сравнения двух объектов, он проверяет, ссылаются ли объекты на одно и то же место в памяти. Другими словами, он проверяет, являются ли имена двух объектов в основном ссылками на одно и то же место в памяти.

Класс Java String фактически переопределяет реализацию equals () по умолчанию в классе Object и переопределяет этот метод, чтобы он проверял только значения строк, а не их местоположения в памяти. Это означает, что если вы вызываете метод equals () для сравнения двух объектов String, то, пока действительная последовательность символов равна, оба объекта считаются равными.

Оператор == проверяет, являются ли две строки точно одним и тем же объектом.

Метод .equals() проверяет, имеют ли две строки одно и то же значение.

13
задан Çağdaş Tekin 23 July 2009 в 09:38
поделиться

5 ответов

Для класса нет свойства только для чтения настоящий выпадающий список для веб-форм asp.net.

        <asp:DropDownList ID="DropDownList1" runat="server" Enabled="False">
    </asp:DropDownList>

Если это не то, что вы делаете, вам нужно быть более конкретным. Вы не задали вопрос, вы не объяснили, ЧТО не работает, или не сказали, используете ли вы веб-формы или winforms, или это находится в коде позади или на странице aspx.

ETA: удалить только для чтения свойство из раскрывающегося списка, оно недействительно. ПОСЛЕ того, как вы проверите эту часть и посмотрите, исправила ли она ее, если он по-прежнему не выполняет то, что вы хотите, сообщите нам, что он не делает. Это не отключение? Это не привязка к данным? Что с этим происходит?

Да, и убедитесь, что вы используете Bind, а не Eval, для шаблонов редактирования, если значение передается обратно каким-либо образом, например, при обновлении запроса. Иногда платформа делает это за кулисами, поэтому, вообще говоря, просто используйте Bind.

Еще одно изменение: это работает для меня в самом основном смысле, поскольку оно связывает, и раскрывающийся список не выбирается.

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ProductID"
        DataSourceID="sqldsProducts" AutoGenerateEditButton="True">
        <Columns>
            <asp:BoundField DataField="ProductID" HeaderText="ProductID" SortExpression="ProductID" />
            <asp:TemplateField HeaderText="CategoryID" InsertVisible="False" SortExpression="CategoryID">
                <EditItemTemplate>
                    <asp:DropDownList Enabled="false" ID="ddlCategory" runat="server" DataSourceID="sqldsCategories"
                        DataTextField="CategoryName" DataValueField="CategoryID" SelectedValue='<%# Bind("CategoryID") %>' AppendDataBoundItems="True">
                        <asp:ListItem Selected="True" Value="" Text="-- choose one --" />
                    </asp:DropDownList>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="lblCategory" runat="server" Text='<%# Bind("ProductID") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" />
        </Columns>
    </asp:GridView>
27
ответ дан 1 December 2019 в 17:48
поделиться

Вы можете отключить раскрывающийся список, но вам нужно будет сделать это из кода.

Попробуйте это в своем .cs (при условии, что ваш asp: DropDownList является идентификатором ddlCategory),

ddlCategory.Attributes.Add("disabled", "disabled");
14
ответ дан 1 December 2019 в 17:48
поделиться

Это то, что я делаю:

ddlEditTotalHoursEffect.Enabled = false;

Я могу сделать это из вашего кода программной части.

Ой, подождите, вы включили равенство false. Что ты хочешь сделать, тогда? Вы хотите, чтобы поле ввода данных было включено, но не раскрывающееся меню?

0
ответ дан 1 December 2019 в 17:48
поделиться
var rmu_minutes = 0;

var initRmuChangeHandlers = function() {

    $(".container select").change(function(e) {
        var x = 0;
        var dropDowns = $(".container select");
        dropDowns.each(function() {
            var ddl = this;
            x += parseInt(ddl.value);
            if (!dayOffRmuValidator(x)) {
                alert("4 Hours MAX");
                ddl.selectedIndex = 0;
            }
        });
        rmu_minutes = x;
        updateTotalRmu();

    });
}

var initClearRmuDropDowns = function() {

    var dropDowns = $(".container select");
    dropDowns.each(function() {
        var ddl = this;
        ddl.selectedIndex = 0;
    });
}

var dayOffRmuValidator = function(rmu_minutes) {
    var _MAXMINUTES = 240;

    var ddl = $get('ctl00_ContentPlaceHolder1_DetailsView1_ddlEditType');
    var ddlVal = parseInt(ddl.options[ddl.selectedIndex].value);

    if (ddlVal == RequestTypes["Day Off"])
        return rmu_minutes <= _MAXMINUTES;

    return true;
}


var badRmuHours = function() {
    alert("You are only allowed to make up 4 hours total for a day off");
    var ddlTotal = $("#ctl00_ContentPlaceHolder1_DetailsView1_ddlEditTotalHoursEffect")[0];
    ddlTotal.selectedIndex = 0;
}
0
ответ дан 1 December 2019 в 17:48
поделиться

Предполагая, что под отключением вы подразумеваете «сделать так, чтобы пользователь не мог выбрать элемент из списка», тогда все следующие примеры приводят к одному и тому же html (который работает для меня):

Метод 1:

<asp:DropDownList ID="dd" Enabled="false" runat="server">...

Метод 2:

<asp:DropDownList ID="dd" disabled="disabled" runat="server">...

Метод 3 (aspx):

<asp:DropDownList ID="dd" runat="server">...

Метод 3 (aspx.cs):

dd.Enabled = false;

Метод 4 (aspx):

<asp:DropDownList ID="dd" runat="server">...

Метод 4 (aspx.cs ):

dd.Attributes.Add("disabled", "disabled")

Результирующий HTML:

<select name="dd" id="dd" disabled="disabled">...
6
ответ дан 1 December 2019 в 17:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: