Это не вызовет утечку памяти в классическом смысле C... Например
Class A{
static B foo;
...
static void makeFoo(){
foo = new B();
foo = new B();
}
В этом случае, вызов к makeFoo () не приведет к утечке памяти, поскольку первая инстанция может быть собрана "мусор".
Вы можете установить для кнопки UseSubmitBehavior = false
btnCategory.UseSubmitBehavior = false;
Вот что я использовал для решения этой проблемы.
<form runat="server" defaultbutton="DoNothing">
<asp:Button ID="DoNothing" runat="server" Enabled="false" style="display: none;" />