0

Webアプリケーションのさまざまなマスターページに共通のヘッダーユーザーコントロールを作成したいと思います。ヘッダーはマスターによって共有され、ロゴ、ナビゲーション、マイアカウントやサインアウトなどの動的アカウントボタンなどの一般的なアイテムがあります。

フォームに動的リンクボタンをうまく追加していますが、プレースホルダーの位置に移動したいと思います。

問題は、プレースホルダーに追加すると、ユーザーコントロールに「'LinkBut​​ton'はrunat=serverのフォームタグ内に配置する必要があります」というエラーが表示されることです。

uc_header.ascx.cs

LinkButton signout = new LinkButton();
signout.Text = "Sign-Out";
signout.ID = "SignOutLink";
signout.Click += new EventHandler(SignOutLink_Click);
//adding it to the form works but positions it at the bottom
this.Page.Form.Controls.Add(signout);
//I get an error when I try to add it to the placeholder 
SignOutHolder.Controls.Add(signout);

uc_header.ascx(たとえば簡略化)

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="uc_header.ascx.cs" 
Inherits="Site.Masters.uc_header" %>

<asp:PlaceHolder ID="SignOutHolder" runat="server"></asp:PlaceHolder>

.Netを使用してサインアウトボタンをプレースホルダーに追加または配置するにはどうすればよいですか?

私の目標は、すべてのページからログアウトし、1つの共通ヘッダーファイルのみを管理する方法を作成することです。

4

1 に答える 1

1

ユーザーコントロールがフォームの外に配置されているようです。エラーメッセージが表示されたら、マスターページをチェックして、ユーザーコントロールがフォーム内にあることを確認します。

于 2012-05-03T15:44:10.600 に答える