从母版页中的服务器端按钮中删除ctl00 $并使其回发

时间:2017-01-06 16:58:27

标签: c# master-pages asp.net-4.5

我尝试通过覆盖它的NamingContainer来删除服务器端按钮的名称和id中的ctl00 $:

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 个答案:

没有答案