Войти

Показать полную графическую версию : Помогите дописать контрол


DaRiYs
04-02-2011, 23:17
Вот писал контрол с помощью которого нужно генерить такой блок
http://s57.radikal.ru/i157/1102/13/11cff93b63b7t.jpg (http://radikal.ru/F/s57.radikal.ru/i157/1102/13/11cff93b63b7.jpg.html)
Данные для таблици сбоку передаются через атрибут при обявлении контрола. Вот собсно весь код

Разметка контрола

<%@ 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>


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




© OSzone.net 2001-2012