Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите дописать контрол (http://forum.oszone.net/showthread.php?t=198606)

DaRiYs 04-02-2011 23:17 1604799

Помогите дописать контрол
 
Вот писал контрол с помощью которого нужно генерить такой блок

Данные для таблици сбоку передаются через атрибут при обявлении контрола. Вот собсно весь код

Разметка контрола
Код:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Slider.ascx.cs" Inherits="Frontend.Controls.Slider" %>
<div class="entityInfo">
    <div class="entityTitle">
        <h2 class="heading" runat="server" id="h2Caption">
        </h2>
    </div>
    <div class="fields">
        <div class="fieldsInfo">
            <asp:Repeater runat="server" ID="rFields">
                <HeaderTemplate>
                    <table class="altItemTable">
                        <tbody>
                </HeaderTemplate>
                <ItemTemplate>
                    <tr class="alt">
                        <td class="leftColumn">
                            <%# Eval("Key")%>
                        </td>
                        <td class="rightColumn">
                            <%# Eval("Value")%>
                        </td>
                    </tr>
                </ItemTemplate>
                <AlternatingItemTemplate>
                    <tr>
                        <td class="leftColumn">
                            <%# Eval("Key")%>
                        </td>
                        <td class="rightColumn">
                            <%# Eval("Value")%>
                        </td>
                    </tr>
                </AlternatingItemTemplate>
                <FooterTemplate>
                    </tbody> </table>
                </FooterTemplate>
            </asp:Repeater>
        </div>
        <div class="clear">
        </div>
    </div>
</div>

код контрола
Код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace TheGame.Frontend.Controls
{
    public partial class Slider : System.Web.UI.UserControl
    {
        public string Caption
        {
            get;
            set;
        }


        [PersistenceMode(PersistenceMode.InnerProperty)]
        public List<Label> FieldsContent
        {
            get;
            set;
        }

        protected void Page_Init(object sender, EventArgs e)
        {
            h2Caption.InnerText = Caption;
            Dictionary<String, String> DataFields = new Dictionary<string, string>();
            for (int i = 0; i < FieldsContent.Capacity - 1; i+=2)
                DataFields.Add(FieldsContent[i].Text, FieldsContent[i + 1].Text);
            rFields.DataSource = DataFields;
            rFields.DataBind();
        }
    }
}

Страница использования контрола
Код:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="tst.aspx.cs" Inherits="Frontend.Pages.tst" %>
   
    <%@ Register TagPrefix="uc" TagName="Slider" Src="~/Controls/Slider.ascx" %>

<asp:content id="mainContent" contentplaceholderid="cphMain" runat="server">
    <uc:Slider ID="fwsfdd" runat="server" Caption="Cap" >
        <FieldsContent>
            <asp:Label ID="fsdfsd" runat="server" Text="hgdhgh" />
            <asp:Label ID="dfs" runat="server" Text="123" />                        //тут передаю инфу для вывода в таблицу контрола
            <asp:Label ID="fds" runat="server" Text="hgsdfdsdhgh" />
            <asp:Label ID="fvdds" runat="server" Text="4234" />
        </FieldsContent>
    </uc:Slider>
</asp:content>

Все работает отлично пока данные все статичны, если же использовать серверные вставки то ничего не работает, например

Код:

<uc:Slider ID="fwsfdd" runat="server" Caption='<%# GetCaption() %>' >
        <FieldsContent>
            <asp:Label ID="fsdfsd" runat="server" Text="hgdhgh" />
            <asp:Label ID="dfs" runat="server" Text='<%# GetData() %>' />                        //тут передаю инфу для вывода в таблицу контрола
            <asp:Label ID="fds" runat="server" Text="hgsdfdsdhgh" />
            <asp:Label ID="fvdds" runat="server" Text='<%# GetData2() %>' />
        </FieldsContent>
    </uc:Slider>

как это решить или как можно по другому сделать правильно? Помогите, оч срочно нада решить


Время: 03:14.

Время: 03:14.
© OSzone.net 2001-