Проблема с переводом всплывающих подсказок в HtmlEditor (AjaxControlToolkit)

public class CustomEditor : Editor
{
    protected override void Render(HtmlTextWriter writer)
    {
        Toolbar topToolbar = this.TopToolbar;
        Collection<AjaxControlToolkit.HTMLEditor.ToolbarButton.CommonButton> buttons = topToolbar.Buttons;

        foreach (AjaxControlToolkit.HTMLEditor.ToolbarButton.CommonButton button in buttons)
        {
            switch (button.GetType().Name)
            {
                case "Undo":
                    button.ToolTip = "Отменить ввод";
                    break;
                case "Redo":
                    button.ToolTip = "Повторить ввод";
                    break;
                // many others buttons

                case "FixedForeColor":
                    button.ToolTip = "Цвет текста";
                    break;
                case "FixedBackColor":
                    button.ToolTip = "Цвет выделения текста";
                    break;
            }
        }
        base.Render(writer);
    }
}

Почти все работает нормально. Проблема с кнопками "FixedForeColor" и "FixedBackColor". Их всплывающие подсказки не изменены (и по-прежнему на английском языке). Есть ли решение?


person Vitali Olshevski    schedule 17.08.2010    source источник
comment
Если вы нашли решение, опубликуйте ответ с описанием решения, а затем отметьте его как принятое.   -  person Timwi    schedule 18.08.2010


Ответы (2)


более простой способ:

Вы можете управлять всеми кнопками с их порядковыми номерами, ниже вы можете увидеть их порядковые номера.

protected override void Render(HtmlTextWriter writer)
{
  Toolbar topToolbar = this.TopToolbar;
  Collection<AjaxControlToolkit.HTMLEditor.ToolbarButton.CommonButton> buttons = topToolbar.Buttons;

  buttons[0].ToolTip = "My Lovely Undo";

  // Or you visible it
  buttons[0].visible = false;

  base.Render(writer);
}

/* List button index
   [0]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.Undo}
   [1]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.Redo}
   [2]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.HorizontalSeparator}
   [3]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.Bold}
   [4]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.Italic}
   [5]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.Underline}
   [6]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.StrikeThrough}
   [7]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.SubScript}
   [8]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.SuperScript}
   [9]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.HorizontalSeparator}
  [10]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.Ltr}
  [11]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.Rtl}
  [12]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.HorizontalSeparator}
  [13]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.FixedForeColor}
  [14]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.ForeColorSelector}
  [15]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.ForeColorClear}
  [16]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.HorizontalSeparator}
  [17]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.FixedBackColor}
  [18]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.BackColorSelector}
  [19]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.BackColorClear}
  [20]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.HorizontalSeparator}
  [21]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.RemoveStyles}
  [22]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.HorizontalSeparator}
  [23]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.FontName}
  [24]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.HorizontalSeparator}
  [25]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.FontSize}
  [26]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.HorizontalSeparator}
  [27]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.Cut}
  [28]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.Copy}
  [29]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.Paste}
  [30]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.PasteText}
  [31]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.PasteWord}
  [32]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.HorizontalSeparator}
  [33]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.DecreaseIndent}
  [34]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.IncreaseIndent}
  [35]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.HorizontalSeparator}
  [36]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.Paragraph}
  [37]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.JustifyLeft}
  [38]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.JustifyCenter}
  [39]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.JustifyRight}
  [40]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.JustifyFull}
  [41]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.RemoveAlignment}
  [42]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.HorizontalSeparator}
  [43]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.OrderedList}
  [44]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.BulletedList}
  [45]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.HorizontalSeparator}
  [46]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.InsertHR}
  [47]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.InsertLink}
  [48]: {AjaxControlToolkit.HTMLEditor.ToolbarButton.RemoveLink}
*/
person Erdogan    schedule 16.05.2011

О, да. Я нашел решение. Это немного сумасшествие (потому что я новичок в asp.net и не знаю, как правильно найти дочерние элементы управления).

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

case "FixedForeColor":
    ((AjaxControlToolkit.HTMLEditor.ToolbarButton.MethodButton)button.Controls[0].Controls[0].Controls[0].Controls[0]).ToolTip = "Цвет текста";
    break;
case "FixedBackColor":
    ((AjaxControlToolkit.HTMLEditor.ToolbarButton.MethodButton)button.Controls[0].Controls[0].Controls[0].Controls[0]).ToolTip = "Цвет выделения текста";
    break;

Если кто-то знает, как упростить, напишите.

person Vitali Olshevski    schedule 18.08.2010