2009-11-27 2 views
0

Мне нужно расширить DropDownList. Чтобы добавить подсказку для элемента DropDown на mouseOver.Расширение DropDown для Item ToolTip, Asp.net, C#

Если (Выпадающее размер samller чем DropDownList элемент, то это будет полезно увидеть деталь как наконечник инструмента)

Для этого я пришел знать, нам нужно создать ServerControl проект в VS2008, но я не знаю, как добавить объект, такой как ItemToolTip

который должен быть обработан как (DataTextField, DataValueField в выпадающем списке) этого класса.

скажите мне любую ссылку на образец проекта ServerControl, который похож на мое требование.

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

имена DropDownItemToolTip

{

[DefaultProperty("Text")] 
[ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")] 

public class ServerControl1 : System.Web.UI.WebControls.DropDownList 
{ 

    [Bindable(true)] 
    [Category("Appearance")] 
    [DefaultValue("")] 
    [Localizable(true)] 
    public string Text1 
    { 
     get 
     { 
      String s = (String)ViewState["Text"]; 
      return ((s == null) ? "[" + this.ID + "]" : s); 
     } 

     set 
     { 
      ViewState["Text"] = value; 
     } 
    } 

    protected override void RenderContents(HtmlTextWriter output) 
    { 
     output.Write(Text1); 
    } 

} 

}

Отправить мне любую ссылку примера проекта, который сделал как это ..

ответ

0

Почему вы хотите расширить d Dropdownlist? Попробовать добавить тег Title будет работать правильно?

Попробуйте этот код

<select> 
    <option title="this is a long text">Long text</option> 
</select> 

Он покажет это длинный текст всплывающей подсказки при наведении курсора мыши.

+0

Ya человек будет работать. , если мы сделаем это как компонент, это будет одноразовое усилие, , тогда мы сможем легко использовать это свойство. Среднее время, когда я буду использовать этот тип функций только внутри свойства ItemToolTip. – Vin

+0

, если у вас есть какая-либо ссылка, касающаяся серверного контроля. Продолжайте мне ... thnks для ur ответ – Vin

+0

Проверьте эту ссылку с MSDN: http://msdn.microsoft.com/en-us/library/ms972970.aspx – Anuraj

0

Попробуйте это:

using System.Collections; 
using System.ComponentModel; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace Foo 
{ 
    [ToolboxData("<{0}:DDL runat=\"server\" />")] 
    public class DDL : DropDownList 
    { 

     [Category("Data"), DefaultValue("")] 
     public string DataToolTipField 
     { 
      get { return (string)(ViewState["DataToolTipField"] ?? string.Empty); } 
      set { ViewState["DataToolTipField"] = value; } 
     } 

     protected override void PerformDataBinding(IEnumerable dataSource) 
     { 
      base.PerformDataBinding(dataSource); 

      string dataToolTipField = this.DataToolTipField; 

      if (!string.IsNullOrEmpty(dataToolTipField)) 
      { 
       IEnumerator enumerator = dataSource.GetEnumerator(); 
       for (int i = 0; enumerator.MoveNext(); i++) 
       { 
        this.Items[i].Attributes.Add("title", (string)DataBinder.GetPropertyValue(enumerator.Current, dataToolTipField)); 
       } 
      } 
     } 

    } 
} 
Смежные вопросы