Это ретранслятор:Как установить контролирует значения управления повторителя безотносительно к их данным
<asp:Repeater ID="rptrReports" runat="server">
<ItemTemplate>
<div style="margin: 2">
<asp:Label ID="lblAccount" runat="server" Text='<%#Eval("Account").FullName%>' />
<asp:TextBox ID="txtDescription" runat="server" MaxLength="256" Text='<%#Eval("Description")%>'
ReadOnly="<%# Not Account.IsAdmin %>" BackColor="<%# If(Account.IsAdmin,Color.White, Color.Transparent) %>"
BorderStyle="<%# If(admin, BorderStyle.NotSet, BorderStyle.None) %>"
/>
<asp:TextBox ID="txtNote" runat="server" MaxLength="1024" Text='<%#Eval("Note")%>'
ReadOnly="<%# Not Account.IsAdmin %>" BackColor="<%# If(Account.IsAdmin,Color.White, Color.Transparent) %>"
BorderStyle="<%# If(admin, BorderStyle.NotSet, BorderStyle.None) %>" />
<!-- Here I have many more controls which I want to apply same rules !-->
</div>
</ItemTemplate>
</asp:Repeater>
Я хочу, чтобы установить эти элементы управления на ItemTemplate в коде динамически поэтому asp.net код не должен» т выглядеть так некрасиво:
Private Sub HandleTextBoxes()
Dim admin = Account.IsAdmin
For Each tb As TextBox In _
From c In rptrReports.Controls _
Where TypeOf c Is TextBox 'ItemTemplate doesn't expose the properties :(
With tb
.ReadOnly = Not admin
.BackColor = If(admin, Color.White, Color.Transparent)
.BorderStyle = If(admin, BorderStyle.NotSet, BorderStyle.None)
End With
Next
End Sub
в другой стороны, я не хочу, чтобы установить его или каждый обязан ItemTemplate отдельно, я хочу, чтобы установить его через родительскому управления (Повторитель) сам.
Ответы на C# также будут приветствоваться!
Есть ли способ, чтобы найти все элементы управления в повторителя? Управление [] controls = rpeater.FindAllControls(); – Shimmy
Да, вы можете получить доступ ко всем элементам управления с помощью коллекции e.Item.Controls –
нет, я не хочу получать доступ к e Я хочу настроить его до того, как элемент будет привязан. – Shimmy