1

我有一个共享点 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" width="100%" 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 呈现的任何想法?

谢谢,

瑞安

4

2 回答 2

1

呃,这是我忽略的一件简单的事情。因此,我正在创建控件并将其呈现到输出中,以便在呈现页面时显示出来。但是,为了将其拨入控制树以便 ASP.NET 分配 ID,并且我可以将其连接到事件处理程序,我必须专门将其添加到控制树。

所以我还需要这样做:

protected override void CreateChildControls()
{
    BubbleChartApplyButton = new Button {Text = "Apply This"};

    Controls.Add(BubbleChartApplyButton) //<== ADD TO THE CONTROL TREE BEAVIS!
}
于 2012-06-20T00:48:56.817 回答
0

您是否尝试过类似的方法:

BubbleChartApplyButton = new Button {Text = "Apply This", ID = "myButtonID"};
于 2012-06-19T23:32:16.297 回答