Могу ли я использовать UserControl для повторного использования DropDownExtender, несмотря на наличие параметров для конкретной страницы? - PullRequest
0 голосов
/ 21 июля 2011

В моем приложении у меня есть большое количество страниц, которые повторяют очень похожие сетки, и каждая из них будет иметь элемент управления ajax 'DropDownExtender' в крайнем левом столбце, который будет содержать множество ссылок на другие страницы для этой строки.

Теперь я бы хотел избежать повторения кода, используя этот DropDownExtender в качестве пользовательского элемента управления.Тем не менее, одним из важных аспектов этого является то, что элемент управления будет содержать некоторые скрытые поля / значения для ссылок, которые относятся к этой конкретной строке - например, у меня есть

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

Я предполагаю, что это не будетработа - как бы эффективно передать значения пользовательскому элементу управления?

Ответы [ 2 ]

0 голосов
/ 21 июля 2011

Если я вас правильно понимаю - вам нужен уникальный идентификатор для каждого элемента управления, верно? Если я прав, вы можете сделать следующее:

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; }
        }
    }
}

и чем вы можете использовать этот элемент управления в любых шаблонах элементов управления, таких как Repeater, например:

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <mycontrols:WebUserControl1 ID="myControl1" HiddenFildProperty='<%#Bind("ID") %>'/>
    </ItemTemplate>
</asp:Repeater>

Точно так же вы можете связать любые другие свойства в вашем элементе управления, например, напрямую связать их с DropDownExtander.

0 голосов
/ 21 июля 2011

Если у вас есть общедоступное свойство в вашем пользовательском элементе управления, его можно установить либо в коде, либо в разметке, так же, как вы делаете со скрытым полем выше.

Вам также может понадобиться:

[Bindable(BindableSupport.Yes)]

Если вам нужна поддержка привязки данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...