Masoud__Sh Ответов: 1

Удалите ctl00$ из кнопки на стороне сервера внутри главной страницы и сделайте ее обратной


Всем привет!

я хочу удалить ctl00$ из элемента управления button NamingContainer при использовании masterpage.

Что я уже пробовал:

Я попытался удалить ctl00$ из имени и идентификатора кнопки на стороне сервера, переопределив ее NamingContainer, например:
namespace NoName
{
   public class MatchingNameButton : Button
    {
        public override Control NamingContainer
        {
            get
            {
                return null;
            }
        }
    }
}

а потом зарегистрировал это на странице aspx:
<%@ Register TagPrefix="MatchingNameHtmlTextWriter" Namespace="NoName" Assembly="app_code" %>

и затем приходит как этот:
<MatchingNameHtmlTextWriter:MatchingNameButton runat="server" Text="btnTest" ID="btnTest" OnClick="btnTest_Click" />

а выход такой:
<input type="submit" name="btnTest" value="btnTest" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('btnTest', '', true, '', '', false, false))" id="btnTest">

этот способ хорош для удаления управляющего пути. но использование этого метода предотвратит событие btnTest_Click!
и это так плохо для меня.
мой вопрос таков: как я должен хранить события кнопок таким образом?
моя версия .net-4.5
все, что поможет, будет оценено по достоинству.

1 Ответов

Рейтинг:
1

AnvilRanger

Вы можете установить ClientIDMode.

Контроль.Свойство ClientIDMode (Системы.Веб.ИП)[^]


Masoud__Sh

ClientIDMode сохранит идентификатор, введенный дизайнером. но мне нужно сохранить имя кнопки, как идентификатор кнопки.
например, asp: Button runat=" server "ID= "btnTest" во время выполнения приходит к:
ввод типа="отправить" название="ctl00$ContentPlaceHolder$btnTest" идентификатор="btnTest"

но вот что я хочу: тип входного="закладку" название="btnTest" идентификатор="btnTest"

Я сделал это, переопределив NamingContainer, как и эта статья для .net 2.0:
http://www.gljakal.com/blog/2007/09/12/getting-rid-of-the-naming-container-in-aspnet-20/

эта статья поможет сохранить имя кнопки как ее идентификатор в выводе:

ввод типа= "отправить" название='btnTest' значение='кнопка' функция onclick='JavaScript-код:WebForm_DoPostBackWithOptions(новый WebForm_PostBackOptions('btnTest', ", истина, ", ", ложь, ложь))' ИД='btnTest'

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