首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.NET MasterPage中的链接按钮和子Webform数据控件创建额外的href="“

ASP.NET MasterPage中的链接按钮和子Webform数据控件创建额外的href="“
EN

Stack Overflow用户
提问于 2013-04-10 01:14:34
回答 1查看 1.4K关注 0票数 1

最终编辑:以防其他人看到这种行为,我想解释一下我的工作。我在我的母版页上为下面描述的webform使用了一个占位符。我向母版页OnInit事件中的占位符添加了一个服务器控件。通过消除过程,我发现下面描述的行为只有在我将此服务器控件添加到母版页时才会发生。

代码语言:javascript
运行
复制
titlebarPlaceHolder.Controls.Add(sctitlebar)

我重写了母版页,不需要添加服务器控件,并且下面描述的行为消失了。我不知道是什么引起的。这是一个简单的服务器控件,但这是我的工作。

编辑2:当容器是中继器控件中的表时,也会发生相同的行为:

代码语言:javascript
运行
复制
<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输出:

代码语言:javascript
运行
复制
<td><a href="" id="contentMain_rptAuditList_lnkOpenAudit_0" href="javascript:__doPostBack(&#39;ctl00$contentMain$rptAuditList$ctl00$lnkOpenAudit&#39;,&#39;&#39;)">Demo PreClose July 2012</a> </td>

编辑:在我的测试中,我注意到如果我在MasterPage外部运行extact相同的控件,它可以正常工作,但是如果我在MasterPage内部运行它,它的行为方式如下所述。

我已经用转发器、DataList和Listview尝试过了,结果总是一样的。

下面是HTML:

代码语言:javascript
运行
复制
<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>

下面是输出:

代码语言:javascript
运行
复制
    <ul>
<li><a href="" id="contentMain_lvwAuditList_lnkAudit_0" href="javascript:__doPostBack(&#39;ctl00$contentMain$lvwAuditList$ctrl0$lnkAudit&#39;,&#39;&#39;)">Demo PreClose July 2012</a></li>
 <li><a id="contentMain_lvwAuditList_lnkAudit_1" href="javascript:__doPostBack(&#39;ctl00$contentMain$lvwAuditList$ctrl1$lnkAudit&#39;,&#39;&#39;)">Demo PostClose Audit June 2012</a></li>
 </ul>

第一行总是添加了额外的href="“。我以前从未见过这种行为。我已经把html和代码去掉了,只剩下最基本的部分,但我还是得到了这个额外的href="“。后面的代码只是设置数据源并绑定它,没有其他东西。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-04-10 06:04:45

如果您使用第一个list标记作为占位符,并替换后面代码中的内容,我将使用一种稍微不同的方法,在list标记内添加一个ASP.NET placeholder,如下所示:

代码语言:javascript
运行
复制
<ul><li><asp:PlaceHolder runat="server" ID="itemPlaceholder" /></li></ul>

在使用ASP.NET标记时,我遇到了一些在响应代码中出现的不寻常的伪像。这很可能也会导致你的问题!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15908257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档