+94.5
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
/// Из aspx файла
//<asp:Repeater ID="Repeater1" runat="server">
// <HeaderTemplate>
// <table width="100%" cellspacing="5">
// </HeaderTemplate>
// <ItemTemplate>
// <tr>
// <td>
// ...
// </td>
// <asp:Label runat="server" Visible='<%# DataBinder.Eval(Container.DataItem, "visibleCol2") %>'>
// <td>
// ...
// </td>
// </asp:Label>
// <asp:Label ID="LCol3" runat="server" Visible='<%# DataBinder.Eval(Container.DataItem, "visibleCol3") %>'>
// <td>
// ...
// </td>
// </asp:Label>
// </tr>
// </ItemTemplate>
// <FooterTemplate>
// </table>
// </FooterTemplate>
//</asp:Repeater>
// Из cs файла
DataTable dtres = // получаем товары
if (dtres != null && dtres.Rows.Count > 0)
{
DataTable dt = new DataTable();
/*...*/
for (int i=0;i<dtres.Rows.Count;)
{
DataRow dr=dtres.Rows[i];
/*...*/
int col2Index = i + 1;
if (col2Index < dtres.Rows.Count)
{
/*...*/
i++;
int col3Index = i + 1;
if (col3Index < dtres.Rows.Count)
{
/*...*/
i++;
}
else { /*...*/ }
}
else { /*...*/ }
dt.Rows.Add(newRow);
i++;
}
/*...*/
}
Человеку нужно было сделать товары в сетке 3x6.
От того что он сделал у меня пропал дар речи. (Чтобы тут очень много кода не бы большую (не нужную для понимания) часть заменил на "...")
Вобщем, в двух словах, он поместил вторую и третью ячейки таблицы в серверные контролы (причем в Label), а в коде берёт по три товара и засовывает в один RepeaterItem, ну а если количество товаров не делится нацело на три, то в последний RepeaterItem засовываются пустые данные, а Label делается невидимым.
Как-то так.
И самое главное, я не знаю, как человеку объяснить, что так нехорошо делать, т.к он главный программист...
Запостил: Ordos,
27 Сентября 2009
guest 27.09.2009 20:18 # 0
zerkms 28.09.2009 01:02 # +4
Ordos 28.09.2009 15:41 # 0
develop7 29.09.2009 21:37 # +1
FofanovIS 28.09.2009 12:04 # 0
if (dtres != null...
В строчке с DataTable уже создаётся, небось, ссылка, нафига он в следующей строке проверяет на null?
Ordos 28.09.2009 15:28 # 0
DataTable dtres = Products.GetVisibleProducts(categoryid);
При ошибке в базе данных метод возвращает null;
FofanovIS 28.09.2009 16:32 # 0
tonic 28.09.2009 12:21 # +4
guest 29.09.2009 02:40 # 0