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

Я попытался удалить 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

все помощь будет оценена.

0 ответов

Другие вопросы по тегам