ASP.NET 按钮不呈现 ID - Sharepoint Web 部件
Posted
技术标签:
【中文标题】ASP.NET 按钮不呈现 ID - Sharepoint Web 部件【英文标题】:ASP.NET Button not rendering ID - Sharepoint Web Part 【发布时间】:2012-06-22 01:53:23 【问题描述】:我有一个共享点 Web 部件,我在其中以编程方式向页面添加一个按钮。当按钮呈现时,它没有名称或 ID。我在 web 部件后面的代码中执行以下操作:
public class ChartControl : WebPart
protected Button BubbleChartApplyButton;
protected override void CreateChildControls()
BubbleChartApplyButton = new Button Text = "Apply This";
protected override void RenderWebPart(htmlTextWriter output)
BubbleChartApplyButton.RenderControl(output);
这就是渲染的内容:
<div WebPartID="4844c2e5-2dd5-437b-a879-90c2e1e21f69" HasPers="false" id="WebPartWPQ2" class="ms-WPBody ms-wpContentDivSpace" allowDelete="false" style="" >
<input type="submit" value="Apply This" />
...more output here...
</div>
注意输入标签是如何以没有名称和 ID 的形式呈现的...我希望看到类似 ID="ctl00$m$g_2d506746_d91e_4508_8cc4_649e463e1537$ctl13" 之类的东西。
关于为什么按钮控件不使用 .NET 通常生成的名称和 ID 呈现的任何想法?
谢谢,
瑞恩
【问题讨论】:
【参考方案1】:您是否尝试过类似的方法:
BubbleChartApplyButton = new Button Text = "Apply This", ID = "myButtonID";
【讨论】:
是的,然后会呈现一个 ID...但我仍然想知道为什么 ID 没有自动生成。最终,我试图弄清楚为什么我的事件处理程序会被这个确切的按钮调用,但首先我想看看为什么 ID 没有自动呈现,以防万一它是相关的。【参考方案2】:呃,我忽略了一件简单的事情。所以我正在创建控件并将其呈现到输出中,以便在呈现页面时显示出来。但是,为了将其拨入控制树以便 ASP.NET 分配 ID,并且我可以将其连接到事件处理程序,我必须专门将其添加到控制树。
所以我也需要这样做:
protected override void CreateChildControls()
BubbleChartApplyButton = new Button Text = "Apply This";
Controls.Add(BubbleChartApplyButton) //<== ADD TO THE CONTROL TREE BEAVIS!
【讨论】:
以上是关于ASP.NET 按钮不呈现 ID - Sharepoint Web 部件的主要内容,如果未能解决你的问题,请参考以下文章
Asp.net MVC 5 视图在使用 F5 重新加载页面之前不呈现