Разделение на подклассы DropDownList в ASP.NET

Чтобы доказать это, просто начните с одной стороны уравнения и переписывайте, пока не дойдете до другой стороны. Мне нравится начинать с более сложной стороны.

when x :: Int,

Continuant (getUI (Continuant x))
    --      ^^^^^^^^^^^^^^^^^^^^
    -- by definition of getUI in Category Continuant Int
    = Continuant x

Это было легко! Это считается доказательством (обратите внимание, формально не проверено - Haskell недостаточно силен, чтобы выразить доказательства на уровне терминов. Но это настолько тривиально, что в Агде это не стоило бы эталона).

Я был немного озадачен формулировкой этой аксиомы, так как она, кажется, довольно часто смешивает типы и термины. Пролистывая статью, кажется, что она предназначена для работы только с простым одним конструктором newtype, поэтому это смешение оправдано (все еще странно). В любом случае, похоже, что в статье нет класса Category, параметризованного на a: то есть вместо

class Category t a where ...

это будет

class Category t where ...

, что имеет больше смысла для меня то, что класс описывает полиморфные обертки, а не, возможно, другое описание того, как он обертывает каждый отдельный тип (тем более что кажется, что аксиома требует, чтобы реализация была одинаковой независимо от того, что a вы выберете!). [ 1111]

5
задан deadtime 24 October 2008 в 09:40
поделиться

2 ответа

Вы хотите расширить DropDownList в Пользовательском элементе управления... не в usercontrol.

Создайте новый Проект Библиотеки классов под названием MyLibrary.

Добавьте класс по имени MyDropDownList.cs

namespace My.Namespace.Controls
{
[ToolboxData("<{0}:MyDropDownList runat=\"server\"></{0}:MyDropDownList>")]
public class MyDropDownList: DropDownList
{
    // your custom code goes here
    // e.g.
    protected override void  RenderContents(HtmlTextWriter writer)
    {
        //Your own render code
    }
}
}

После того как Вы компилируете свою библиотеку, можно добавить ссылку на нее в веб-приложении.

И tagprefix в Вашем web.config

    <add tagPrefix="my" namespace="My.Namespace.Controls" assembly="MyLibrary" />

Это должно позволить Вам добавлять это к своему aspx/ascx's

<my:MyDropDownList ID="myDDl" runat="server">
    ...
</my:MyDropDownList>
16
ответ дан 18 December 2019 в 09:54
поделиться

В комментарии Вы разъясняете свою цель: "Единственная вещь, которую я хочу сделать с ним, добавляет свойство InitialValue, которое определяет первое значение, которое всегда присутствует в DDL".

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

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

    public static void BindListControl (ListControl ctl, SqlDataReader dr,
        String textColumn, String valueColumn, bool addBlankRow, string blankRowText)
    {
        ctl.Items.Clear();
        ctl.DataSource = dr;
        ctl.DataTextField = textColumn;
        ctl.DataValueField = valueColumn;
        ctl.DataBind();

        if (addBlankRow == true) ctl.Items.Insert(0, blankRowText);
    }

Это полезно, например, если Вы хотите, чтобы каждый DropDownList имел как его начальное значение пробел или текст, такой как "Выбор город".

1
ответ дан 18 December 2019 в 09:54
поделиться
Другие вопросы по тегам:

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