2011-07-21 6 views
0

私のアプリケーションでは、非常に似たグリッドを繰り返す多数のページがあり、左端の列にはDropDownExtenderのAjaxコントロールがあり、その行には他のページへのリンクが多数含まれています。ページ固有のパラメータを持っているにもかかわらず、UserControlを使ってDropDownExtenderを再利用することはできますか?

ここでは、このDropDownExtenderをユーザーコントロールとして使用することでコードの繰り返しを避けたいと考えています。例えば、私は

<asp:HiddenField ID="hdnID" runat="server" Value='<%# Bind("ID")' /> 

を持っている私は、これは動作しませんと仮定しています - しかし、これの一つの重要な側面は、コントロールは、その特定の行に関連しているリンクのためのいくつかの隠しフィールド/値が含まれているということです - 効率的な方法で値をユーザーコントロールにどのように渡すのですか?

+1

「コードの再利用を避けたい」あなたは反対の意味ですか? :) – Dante

答えて

0

ユーザーコントロールにパブリックプロパティがある場合は、上の非表示フィールドのように、コードまたはマークアップのいずれかで設定できます。

また、必要な場合があります

[Bindable(BindableSupport.Yes)] 

あなたはデータバインディングのサポートが必要な場合。

0

もし私が右にあなたを控えている - あなたは、各コントロールの一意の識別子を持っている必要がありますよね?私は右のあなたが次に何をすることができた場合:

UserControl1.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication2.WebUserControl1" %> 
<asp:HiddenField ID="hdnID" runat="server" Value='<%# Bind("ID")' /> 

をしてUserControl1.cs:

namespace WebApplication2 
{ 
    public partial class WebUserControl1 : System.Web.UI.UserControl 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 

     public string HiddenFildProperty 
     { 
      get { return hdnID.Value; } 
      set { hdnID.Value = value; } 
     } 
    } 
} 

、あなたが任意のテンプレートコントロールでこのコントロールを使用することができますよりも、そのような中継器として、

同じように、他のプロパティをコントロール内でバインドすることができますあなたのDropDownExtanderのctlyリンク。

関連する問題