Что такое лучший WebControl для создания этого - PullRequest
0 голосов
/ 19 мая 2010

токовый выход

альтернативный текст http://www.balexandre.com/temp/2010-05-19_1159.png

желаемый вывод

альтернативный текст http://www.balexandre.com/temp/2010-05-19_1158.png

текущий код

public partial class test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
            populateData();
    }

    private void populateData()
    {
        List<temp> ls = new List<temp>();

        ls.Add(new temp { a = "AAA", b = "aa", c = "a", dt = DateTime.Now });
        ls.Add(new temp { a = "BBB", b = "bb", c = "b", dt = DateTime.Now });
        ls.Add(new temp { a = "CCC", b = "cc", c = "c", dt = DateTime.Now.AddDays(1) });
        ls.Add(new temp { a = "DDD", b = "dd", c = "d", dt = DateTime.Now.AddDays(1) });
        ls.Add(new temp { a = "EEE", b = "ee", c = "e", dt = DateTime.Now.AddDays(2) });
        ls.Add(new temp { a = "FFF", b = "ff", c = "f", dt = DateTime.Now.AddDays(2) });


        TemplateField tc = (TemplateField)gv.Columns[0];  // <-- want to assign here just day
        gv.Columns.Add(tc); // <-- want to assign here just day + 1
        gv.Columns.Add(tc); // <-- want to assign here just day + 2

        gv.DataSource = ls; 
        gv.DataBind(); 
    }
}

public class temp
{
    public temp() { }

    public string a { get; set; }
    public string b { get; set; }
    public string c { get; set; }
    public DateTime dt { get; set; }
}

и в HTML

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Eval("a") %>' Font-Bold="true" /><br />
                <asp:Label ID="Label2" runat="server" Text='<%# Eval("b") %>' Font-Italic="true" /><br />
                <asp:Label ID="Label3" runat="server" Text='<%# Eval("dt") %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Я пытаюсь избежать повторного кода , поэтому я могу использовать только один уникальный TemplateField

Я могу сделать это с 3 x GridView, по одному в день, но я действительно пытаюсь упростить код, так как Grid будет точно таким же (как HTML-код), только изменения DataSource.

Любая помощь очень ценится, спасибо.

Ответы [ 2 ]

0 голосов
/ 19 мая 2010

Вы можете создать собственный шаблон и предоставить этот шаблон три раза, например: http://msdn.microsoft.com/en-us/library/aa289501%28VS.71%29.aspx

0 голосов
/ 19 мая 2010

используйте для этого ListView .

...