Re[3]: Как изменить контролы в репитере от условий
От: excorp  
Дата: 25.11.05 15:48
Оценка:
Здравствуйте, Saper, Вы писали:

S>Здравствуйте, mogadanez, Вы писали:


M>>
M>><ItemTemplate>
M>>   <my:switch_panel  runat=server  shown_control_index="<%#Page.User.Identity.IsAuthenticated ? 0 : 1 %>" >
M>>        <asp:Label  runat=server text="----"/>
M>>        <asp:Placeholder runat=server><asp:TextBox runat=server/><asp:Button runat=server/></asp:Placeholder>
M>>     </my:switch_panel>
M>></ItemTemplate>
M>>


S>Отлично. Поражён вашим подходом, буду учиться мыслить так же. Это пять, т.е. три ... балла, максимум вобщем


честно говоря не согласен.
ради такого писать отдельный контрол ненужно.
я бы сделал так:

<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
    <ItemTemplate>
        <asp:Table ID="Table1" runat="server">
            <asp:TableRow>
                <asp:TableCell><%# Container.DataItem %></asp:TableCell>
                <asp:TableCell>
                    <asp:Placeholder id="labelplh" runat="server"><asp:Label ID="Label2" runat="server" text="----"/></asp:Placeholder>
                    <asp:Placeholder id="buttonplh" runat="server"><asp:TextBox ID="TextBox2" runat="server"/><asp:Button ID="Button2" runat="server"/></asp:Placeholder>
                </asp:TableCell>
            </asp:TableRow>
        </asp:Table>
    </ItemTemplate>
</asp:Repeater>


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.UI.MobileControls;
using System.Collections.Generic;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List<string> test = new List<string>();
        test.Add("test1");
        test.Add("test2");
        test.Add("test3");
        test.Add("test4");
        test.Add("test5");
        test.Add("test6");

        Repeater1.DataSource = test;
        Repeater1.DataBind();
    }

    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
        {
            if (User.Identity.IsAuthenticated)
            {
                ((PlaceHolder)e.Item.FindControl("labelplh")).Visible = false;
                ((PlaceHolder)e.Item.FindControl("buttonplh")).Visible = true;
            }
            else
            {
                ((PlaceHolder)e.Item.FindControl("labelplh")).Visible = true;
                ((PlaceHolder)e.Item.FindControl("buttonplh")).Visible = false;
            }
        }
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.