Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Repeater, вывести пустые значения, Вывести больше значений чем есть вSource 
:(
    Опции темы
chaZm
  Дата 17.3.2009, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 7.4.2008

Репутация: нет
Всего: нет



Всем добрый день..
Есть такая проблема. В таблице в базе данных есть ряд записей. скажем о выплатах на каждый месяц(на каждый месяц своя только одна запись). В дальнейшем - одна запись на месяц года.
В настоящий момент в ней есть записи по 3м месяцам. остальных записей соответственно нет.
Вывод данных в таблицу производится через 2 вложенных repeater'а ( Один по столбцам, другой по строкам). не спрашивайте почему так, это требование заказчика, иначе в данном случае нельзя smile
Итак..
Так как есть только 3 записи репитер выводит в строке 3 ячейки (скажем с label'ами). Однако я хочу чтобы он вывел 12 записей. 3- с заполненными, 9 с пустыми. Таким образом я смогу через js сделать селект и по щелчку на ячейке выводить интерфейс добавления информации по выплате за выбранный месяц.
Пытался ловить события репитера - однако они все срабатываю после бинда данных именно 3( в нашем случае) раза.
Подскажите каким образом здесь лучше поступить..

Код разметки
Код

 <asp:Repeater  ID="Repeater2" runat="server" OnItemDataBound="OnRepeater2_ItemDataBound">
            <HeaderTemplate>
            <table border="dashed">
            <tr>
             <%=MakeMonthList() %>
            </tr>
            </HeaderTemplate>
            <ItemTemplate>
            <tr>
            <td>
                <asp:Label ID="IdLabel" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "EmployeeId")%>'></asp:Label>
                <asp:Label ID="NameLabel" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "FirstName")%>'></asp:Label>
            </td>
            <asp:Repeater ID="rptMonths" runat="server" OnItemDataBound="OnrptMonth_ItemDataBound" >
                <ItemTemplate>
                    <td id='<%#DataBinder.Eval(Container.DataItem, "ID")%>' >
                       <asp:Label ID="AdvanceLabel" ForeColor="Coral" runat="server" Text='<%#Eval("Advance") %>'></asp:Label>
                      <asp:HiddenField ID="HiddenMonth"  Value ='<%#DataBinder.Eval(Container.DataItem, "Month", "{0:d}")%>' runat="server" />
                      <asp:HiddenField ID="HiddenPaymentId" runat="server" Value='<%#DataBinder.Eval(Container.DataItem, "ID")%>'></asp:HiddenField>
                      <asp:Label ID="MoneyLabel" runat="server" Text='<%#Eval("Summary") %>'></asp:Label>
                    
                    </td>
                </ItemTemplate>
            </asp:Repeater>
            </tr>
            </ItemTemplate>
            
            <FooterTemplate>
            </table>
            </FooterTemplate>
            </asp:Repeater>


Код страницы
Код

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
           //....
            Repeater2.DataSource = EmployeeList.Select();
            Repeater2.DataBind();
             //....     
            
        }
    }
   
    protected void OnRepeater2_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item ||
            e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Label IdLabel = (Label)e.Item.FindControl("IdLabel");
            Repeater rptMonths = (Repeater)e.Item.FindControl("rptMonths");
            Int32 tmp;
            Int32.TryParse(IdLabel.Text, out tmp);
            rptMonths.DataSource = PaymentList.GetStatusListByYear(tmp,2008);
            rptMonths.DataBind();
        }
    }

     public String MakeMonthList()
    {
        String html = "<td>  &nbsp </td>";
        foreach (object i in MonthList.Items)
        {
            html +="<td>" + i.ToString()+"</td>";
        }
        return html;
    }


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ASP | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.