2012-05-03 6 views
0

Webアプリケーションのさまざまなマスターページに共通のヘッダーユーザーコントロールを作成します。ヘッダーはマスターによって共有され、ロゴ、ナビゲーション、マイアカウントやサインアウトなどのダイナミックアカウントボタンなどの共通項目があります。.NetユーザーコントロールのプレースホルダにLinkBut​​tonを追加します。

フォームにダイナミックリンクボタンを追加していますが、プレースホルダの位置に移動します。

問題は、プレースホルダに追加するときに、「 '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つだけ管理する方法を作成することです。

+0

「uc_header」はどこにありますか?それはフォームの外ですか? –

+0

マスターページにあり、フォームの中にあります。 – User970008

+0

実際、それが問題でした。フォームの外にあったマスターが1人いました。ドー!ありがとう。 – User970008

答えて

0

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

関連する問題