Webアプリケーションのさまざまなマスターページに共通のヘッダーユーザーコントロールを作成します。ヘッダーはマスターによって共有され、ロゴ、ナビゲーション、マイアカウントやサインアウトなどのダイナミックアカウントボタンなどの共通項目があります。.NetユーザーコントロールのプレースホルダにLinkButtonを追加します。
フォームにダイナミックリンクボタンを追加していますが、プレースホルダの位置に移動します。
問題は、プレースホルダに追加するときに、「 'LinkButton'を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つだけ管理する方法を作成することです。
「uc_header」はどこにありますか?それはフォームの外ですか? –
マスターページにあり、フォームの中にあります。 – User970008
実際、それが問題でした。フォームの外にあったマスターが1人いました。ドー!ありがとう。 – User970008