EDIT Final: На случай, если кто-то еще увидит это поведение, я хотел бы объяснить свою работу. Я использовал местозаполнитель на моей главной странице для веб-формы, описанной ниже. Я добавил серверный элемент управления в местозаполнитель в событии OnInit главной страницы. Через процесс устранения я понял, что описанное ниже поведение происходит только тогда, когда я добавляю этот серверный элемент управления на главную страницу.Linkbutton в ASP.NET MasterPage и дочерний элемент управления данными Webform, создающий дополнительный href = ""
titlebarPlaceHolder.Controls.Add(sctitlebar)
Я переписал главную страницу, чтобы не потребовалось дополнительное управление сервером, и описанное ниже поведение исчезло. Я понятия не имею, что вызвало это. Это был простой серверный контроль, но это моя работа.
EDIT 2: Такое же поведение происходит, когда контейнер представляет собой таблицу, в повторителем:
<asp:Repeater ID="rptAuditList" runat="server">
<ItemTemplate>
<tr class="odd">
<td><asp:LinkButton ID="lnkOpenAudit" runat="server" Text='<%# Eval("auditname") %>'></asp:LinkButton> </td>
</tr>
</ItemTemplate>
</asp:Repeater>
Вот вывод HTML:
<td><a href="" id="contentMain_rptAuditList_lnkOpenAudit_0" href="javascript:__doPostBack('ctl00$contentMain$rptAuditList$ctl00$lnkOpenAudit','')">Demo PreClose July 2012</a> </td>
EDIT: В моем тестировании я просто заметил что если я запустил такой же элемент управления OUTSIDE MasterPage, он работал правильно, но если я запустил его внутри MasterPage, он будет вести себя так, как описано ниже.
Я пробовал это с помощью Repeater, DataList и Listview, и результаты всегда одинаковы.
Вот HTML:
<asp:ListView ID="lvwAuditList" runat="server" >
<LayoutTemplate>
<ul><li runat="server" id="itemPlaceholder"></li></ul>
</LayoutTemplate>
<ItemTemplate>
<li><asp:LinkButton ID="lnkAudit" runat="server" Text='<%# Eval("auditname") %>' >
</asp:LinkButton></li>
</ItemTemplate>
</asp:ListView>
Вот результат:
<ul>
<li><a href="" id="contentMain_lvwAuditList_lnkAudit_0" href="javascript:__doPostBack('ctl00$contentMain$lvwAuditList$ctrl0$lnkAudit','')">Demo PreClose July 2012</a></li>
<li><a id="contentMain_lvwAuditList_lnkAudit_1" href="javascript:__doPostBack('ctl00$contentMain$lvwAuditList$ctrl1$lnkAudit','')">Demo PostClose Audit June 2012</a></li>
</ul>
Первая строка всегда имеет дополнительный HREF = "" добавлен. Я никогда раньше этого не видел. Я разделил html и код позади до самого элементарного, но я все еще получаю это дополнительное href = "". Код только устанавливает источник данных и связывает его, ничего другого.
спасибо.
его созданный сервером, чтобы сделать сообщение назад ...... по щелчку ссылки –
да, но почему существуют два href = ""? Один для обратной передачи, но второй - просто пустой. – user2262842