Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / МСУ, зачем AmountText проверять на null? / 25 сообщений из 75, страница 1 из 3
05.02.2013, 13:59
    #38137943
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
MCEskyANAВот и обоснуй свои потуги тролля на конкретном примере.
Или слив тебе засчитать и пшёл ты нах?Я ж тебе уже сто раз объяснял, но у тебя еще и с памятью туго. Вот тут 13870656 ты конкретно сел в лужу, стыд и срам. После этого я тебе аргументировал, почему так. Но ты опять начал зудеть.И где я сел в лужу?
То, что ты мой вопрос прочитал как предложение вставлять пустые спаны, дак это твои проблемы.
Вот тут 13871824 я тебе намекнул на то, что просто сразу не стал говорить тебе о том, что твоё решение - это всего-лишь говнокод.
В ответ на что ты попытался перевести стрелки 13871887 , но не прокатило.

Короче, МСУ, пока ты будешь оставаться безоснавательным хамом, для меня ты полный му**к.
...
Рейтинг: 0 / 0
05.02.2013, 14:27
    #38138009
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
skyANA, ты похож на жалобное существо, которое хорошенько отшлепали и поставили в угол. Не нужно пытаться отмазываться как нашкодившая второклассница.

Вот мой код:

Код: c#
1.
2.
3.
<ItemTemplate>
    <%# Eval("AmountText") != null ? string.Format("<span style='color:red'>{0}</span>", Eval("AmountText")) : null %>
</ItemTemplate>



Вот тут 13870623 ты чётко написал:

skyANA1. зачем AmountText проверять на null?
Разбираем этот унылый вопрос недостойного специалиста. Другими словами, ты четко даешь понять, что не нужна проверка na null. Что это значит? Правильно, это значит, что убираем проверку на нулл и оставляем только string.Format("<span style='color:red'>{0}</span>", Eval("AmountText")). Но ты хитрая мартышка, и сразу начнешь дальше отмазываться почему не Eval("AmountText")? Ответ на этот еще пока не заданный вопрос находится в следующем твоём гавнопосте:

skyANA2. Пустая красная надпись очень заметная?
Ключево слово "красная". Следовательно, Eval("AmountText") отпадает впринципе.

Итак, что же остается? Правильно, остается вот это:

Код: c#
1.
2.
3.
<ItemTemplate>
    <%# string.Format("<span style='color:red'>{0}</span>", Eval("AmountText")) %>
</ItemTemplate>



Без проверки на нулл, как ты и хотел. Отсюда последовал беспощадный поджопник по твоей заднице за то, что ты ламер. И вот почему. Потому что будут генериться "пустые спаны", о которых я начал тебе говорить далее. А если бы в ItemTemplate фигурировал null, то пустой спан не генерился бы. Профит?

Итого: ты всегда был бестолочью, ей и остаешься. Пока не поумнеешь хотя бы на половину своих грустных познаний, не хочу иметь с тобой дело. Иди спать.
...
Рейтинг: 0 / 0
05.02.2013, 15:01
    #38138077
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
...
Рейтинг: 0 / 0
05.02.2013, 15:03
    #38138083
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
МСУ
Код: c#
1.
2.
3.
<ItemTemplate>
    <%# Eval("AmountText") != null ? string.Format("<span style='color:red'>{0}</span>", Eval("AmountText")) : null %>
</ItemTemplate>




когда я трейсером проверял, почему страница, сделанная не мной, долго рисуется,оказалось, что дольше всего выполнялся вывод html элементов, сформированных на сервере. (намекаю на код, привиденный в цитате).
существенно быстрее оказался вывод, когда нужные мне элементы я оформил в виде серверных - runat="server".
в итоге, html, сформированный кодом из приведенной выше цитаты, будет выводиться максимально возможное время.
если вы работаете в Web Forms, то вы должны написать

Код: plaintext
1.
2.
3.
<ItemTemplate>
<span style='color:red' id="idErrorLabel" runat="server"></span>
</ItemTemplate>


в Item_databound контрола получить ссылку на экземпляр idErrorLabel, и уже в отклике события сделать те действия, которые необходимо сделать в зависимости от значения поля AmountText в источнике.

пользоваться надо именно таким походом, потому как
1. он соответствует идеологии Web Forms - контрол + событие
2. вся необходимая логика вынесена из презентации aspx в сервный код
3. сопровождать и развивать страницу гораздо проще.

А так практика показывает что таким способом могут в представление внести какую угодно логику и потом ее модифицировать просто невозможно.
...
Рейтинг: 0 / 0
05.02.2013, 15:09
    #38138095
The_Immortal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
monstrU, и что действительно при таком подходе игра стоит свеч?
...
Рейтинг: 0 / 0
05.02.2013, 15:14
    #38138107
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
monstrUhtml, сформированный кодом из приведенной выше цитаты, будет выводиться максимально возможное время.
если вы работаете в Web Forms, то вы должны написать
Код: plaintext
1.
2.
3.
<ItemTemplate>
<span style='color:red' id="idErrorLabel" runat="server"></span>
</ItemTemplate>



Это очень плохой способ, ибо при пустых значениях клиент получит пустые спаны. Зачем клиента перегружать мусором?

monstrUА так практика показывает что таким способом могут в представление внести какую угодно логику и потом ее модифицировать просто невозможно.
Именно для таких и более замороченных случаев вводится подход "показать" или "не показать" разметку. А не выплёвывать на клиента мусор во имя удобства кодинга.

Именно поэтому я показал вот тут 13871063 другой способ для управления видимостью контрола (уже через серверный Label.Visible), которым отруливает модель представления. Для более сложных манипуляций с "условными" стилями с кучей логики нужно формировать разметку в той же модели представления.

The_ImmortalmonstrU, и что действительно при таком подходе игра стоит свеч?
Бред он написал, не слушай его.
...
Рейтинг: 0 / 0
05.02.2013, 15:17
    #38138118
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
monstrU
Я так понимаю ты в свой бред веришь. Что после databound не будет также рисоваться разметка или по особому сценарию пойдет? не смеши ...
...
Рейтинг: 0 / 0
05.02.2013, 15:22
    #38138137
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
handmadeFromRumonstrU
Я так понимаю ты в свой бред веришь. Что после databound не будет также рисоваться разметка или по особому сценарию пойдет? не смеши ...
Ага, тоже поржал. Значит, вычисления в ItemTemplate будут "выводиться максимально возможное время", а его код в Item_Databound как бы не считается :)

P.S. Я стараюсь прибивать гвозди использовать Item_Databound в самом последнем случае, если уж совсем никак. Намного правильнее и красивее сложную логику разметки заложить в модель представления, а грид просто натравить на это дело.
...
Рейтинг: 0 / 0
05.02.2013, 15:36
    #38138163
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
МСУ,
бред и то и это, статика наше все
http://www.puso.narod.ru/gotstatji.html
...
Рейтинг: 0 / 0
05.02.2013, 15:40
    #38138173
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
Где-то в степиМСУ, бред и то и это, статика наше все
Статика самая быстрая, никто не спорит. Но кому нужен статический хтмл нонче, все хотят динамику.
...
Рейтинг: 0 / 0
05.02.2013, 15:52
    #38138202
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
МСУ,
Вот тут и выходит на передний план менеджер по продаже труда программиста, он должен так убедить клиента
что б он кроме статики ни о чем не мог думать, а так же ни есть и не спать, а требовать только статику.
( дешевле хост, малая подверженность к взлому, быстрая отдача и еще куча всякой х..и)
Вот приведу пример, случай произошел в реале с моим другом ( преферансист, играет на 10 досках с закрытыми глазами)
Как то зашел погреться в бутик на Тверской.
С его слов
- Ты не поверишь, как в тумане, выхожу из бутика под мышкой сорочка за 300 евро, и галстук за 150,
через 10 минут дошло : нах.я купил сам не пойму, девки красивые до ужаса...
...
Рейтинг: 0 / 0
05.02.2013, 16:01
    #38138222
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
monstrU
Код: plaintext
1.
2.
3.
<ItemTemplate>
<span style='color:red' id="idErrorLabel" runat="server"></span>
</ItemTemplate>


в Item_databound контрола получить ссылку на экземпляр idErrorLabel, и уже в отклике события сделать те действия, которые необходимо сделать в зависимости от значения поля AmountText в источнике.


коллеги, мне кажется я понят частично :)

оставлю наиболее важную часть сообщения - для любителей бредятины.
напишу более подробно, о чем я писал.
1. описываете idErrorLabel с атрибутом runat="server"
2. в item_databound получаете экземпляр idErrorLabel
3. если в источнике данных поле AmountText != null то у экзепляра idErrorLabel Visible=true
4. иначе Visible=false

c# код написать надо?

вот вся логика по поводу отображения сообщения об ошибке

в итоге
1. span буден выведен только при наличии данных в AmountText
2. при остутствии данных в AmountText span не будет
2. место размещения бизнес-логики и логики отображения отделено от представления
3. страница рендерется без торомзов

при таком способе отображения

Код: c#
1.
2.
3.
<ItemTemplate>
    <%# Eval("AmountText") != null ? string.Format("<span style='color:red'>{0}</span>", Eval("AmountText")) : null %>
</ItemTemplate>



1. span так же буден выведен только при наличии данных в AmountText
2. бизнес логика и логика отображения смешана с представлением как угодно
3. сгенерированный такими способом html рендериться максимально долго (обратить внимание)
4. будут желающие в представление aspx внедрить какую угодно логику
5. при более менее сложной логике чужую страницу с такой логикой вы сопровождать не сможете

то есть задача решиться обеими способами (оба бредовые). какой вам нужен - выбирайте сами.
если вам нужно управление разметкой- используйте asp.net mvc.
если работаете в web forms - об управлении разметкой забудьте. они разработаны на концепцию контрол+ событие.

только вот пример МСУ - это простой частный случай. привожу крайний случай такого подхода - достался мне в наследство.
восстановить логику repeaterа я не смог- вынужден был писать все с нуля


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
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.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
            <asp:Repeater runat="server" ID="rptProperties" EnableViewState="false">
                <HeaderTemplate>
                    <li>
                        <h3>
                            Атрибуты объекта</h3>
                        <div class="panel">
                            <table style="margin-top: 0" class="tableStyleList">
                </HeaderTemplate>
                <FooterTemplate>
                    </table></div></li></FooterTemplate>
                <ItemTemplate>
                    <tr>
                        <td nowrap="nowrap" style="text-align: right" <%# attrsSorted[(decimal)Container.DataItem].Count > 1 ?  "rowspan='"+attrsSorted[(decimal)Container.DataItem].Count+"'" : "" %>
                            style='font-weight: bold; text-align: left'>
                            <%# GetAttrNameWithNotSpecified((int)ObjectId.GetValueOrDefault() , (decimal)Container.DataItem)%>
                            <span title="Атрибут необходимо сопоставить  с типом объекта" id="idNotSpecified"
                                enableviewstate="False" runat="server" visible='<%#CheckNotSpecifidAttribute((int)ObjectId.GetValueOrDefault() , (decimal)Container.DataItem) %>'
                                class="notSpecified">*</span>
                        </td>
                        <asp:PlaceHolder runat="server" ID="plhMulti">
                            <asp:Repeater runat="server" ID="rptTypeValues">
                                <HeaderTemplate>
                                    <%# index == 0 ? "" : "</tr>" %>
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <%# index == 0 ? "" : "<tr>" %>
                                    <td width="100%">
                                        <label class="labelSelect active <%# (StatusType)(int)(decimal)Eval("STATUS_ID") %>"
                                            title='Редактировать' style="font-weight: normal" <%# string.Format("onclick=\"ShowAttrEditor('{0}');\"", QueryString
                                                .SetBeforeUrl(ResolveClientUrl("~/popup.aspx"))
                                                .SetParameter("skin","EditAttribute")
                                                .SetParameter("attr", Eval("ATTR_ID").ToString())) %>>
                                            <%# GetNullableValue(Eval("NORMAL_VALUE")) %>
                                        </label>
                                        <%# GetNullableValue(Eval("NORMAL_VALUE")).Length > 0 && Array.IndexOf(new decimal[] { 1,2,3,12,17,32,8,14,51,53,100 },(decimal?)Eval("ATTR_TYPE")) == -1 ? string.Empty : "<a href='" + ResolveClientUrl("~/default.aspx?skin=" + (ObjectTypeId == 2 ? "companies" : "persons")) + "&attr_" + (decimal?)Eval("ATTR_TYPE") + "=" + HttpUtility.UrlEncode(GetNullableValue(Eval("NORMAL_VALUE")),Request.ContentEncoding) + "' target='_blank' title='Найти всех с тем же значением'><img style='position:relative;top:5' src='images/find.png' width='16' height='16' border='0'/></a>"%>
                                        <%# GetNullableValue(Eval("NORMAL_VALUE")).Length > 0 && Array.IndexOf(new decimal[] { 8,14,51,53 },(decimal?)Eval("ATTR_TYPE")) == -1 ? string.Empty : "<a href='http://maps.yandex.ru/?text=" + HttpUtility.UrlEncode(GetNullableValue(Regex.Replace((Eval("NORMAL_VALUE") ?? string.Empty).ToString().Trim(),@"^\s*ИНДЕКС\s+\d+,\s*(?<addr>[\s\S]+)(\s*,\s*КВ\s*\d*)|^\s*ИНДЕКС\s+\d+,\s*(?<addr>[\s\S]+)|(?<addr>[\s\S]+)","${addr}",RegexOptions.IgnoreCase))) + "' target='_blank' title='Показать на карте Яндекса'><img style='position:relative;top:5' src='images/maps_yandex.gif' width='16' heigh='16' border='0'/></a>"%>
                                        <%# GetNullableValue(Eval("NORMAL_VALUE")).Length > 0 && Array.IndexOf(new decimal[] { 8,14,51,53 },(decimal?)Eval("ATTR_TYPE")) == -1 ? string.Empty : "<a href='http://www.google.ru/maps?q=" + HttpUtility.UrlEncode(GetNullableValue(Regex.Replace((Eval("NORMAL_VALUE") ?? string.Empty).ToString().Trim(),@"^\s*ИНДЕКС\s+\d+,\s*(?<addr>[\s\S]+)(\s*,\s*КВ\s*\d*)|^\s*ИНДЕКС\s+\d+,\s*(?<addr>[\s\S]+)|(?<addr>[\s\S]+)","${addr}",RegexOptions.IgnoreCase))) + "' target='_blank' title='Показать на карте Google'><img style='position:relative;top:5' src='images/maps_google.gif' width='16' heigh='16' border='0'/></a>"%>
                                        <%# GetAttributes((T_ATTRIBUTE)Container.DataItem) %>
                                        <div style="display: none" id='edit_<%# Eval("ATTR_ID")%>' class="edit">
                                            <label class='formLabel' for='<%# "ATTR_" + Eval("ATTR_ID") + "_" + Eval("ATTR_TYPE") %>'>
                                                Новое значение:</label>
                                            <input type="text" maxlength="500" style="width: 400px" id='<%# "ATTR_" + Eval("ATTR_ID") + "_" + Eval("ATTR_TYPE") %>'
                                                name='<%# "ATTR_" + Eval("ATTR_ID") + "_" + Eval("ATTR_TYPE") %>' />
                                            <label class='formLabel' for='<%# "COMMENT_" + Eval("ATTR_ID") + "_" + Eval("ATTR_TYPE") %>'>
                                                Комментарий:</label>
                                            <textarea style="width: 400px" rows="4" id='<%# "COMMENT_" + Eval("ATTR_ID") + "_" + Eval("ATTR_TYPE") %>'
                                                name='<%# "COMMENT_" + Eval("ATTR_ID") + "_" + Eval("ATTR_TYPE") %>'></textarea>
                                            <div>
                                                <a href="#" onclick='clear_form_elements("#edit_<%# Eval("ATTR_ID")%>"); return false;'
                                                    style="margin-right: 10px" tabindex="1000" class="clearButton">Отмена</a>
                                                <input type="submit" value="Сохранить" class="btnSubmit" <%# "onclick=\"$('#editedID').val('" + Eval("ATTR_ID") + "_" + Eval("ATTR_TYPE") + "');\"" %> /></div>
                                        </div>
                                    </td>
                                    <td nowrap="nowrap">
                                        <%# GetDatePeriod(((T_ATTRIBUTE)Container.DataItem).DATE_FROM, ((T_ATTRIBUTE)Container.DataItem).DATE_TO) %>
                                    </td>
                                    <td nowrap="nowrap">
                                        <%# GetObjectSource(((T_ATTRIBUTE)Container.DataItem).SOURCE_DOC_ID) %>
                                    </td>
                                    <asp:PlaceHolder runat="server" ID="plhAdditionalAttrs_Attr" Visible='<%# Request.QueryString["optattr"] != null %>'>
                                        <td>
                                            <a name='<%# Eval("ATTR_ID")%>'>#<%# Eval("ATTR_ID")%></a>
                                        </td>
                                        <td nowrap="nowrap">
                                            <a title='Удалить атрибут' <%# "onclick=\"return confirm('Подтвердите удаление атрибута &quot;"+ Server.HtmlEncode(GetNullableValue(Eval("NORMAL_VALUE"))) +"&quot;');\"" %>
                                                href='<%# QueryString.SetParameter("remove_attribute",Eval("ATTR_ID").ToString()) %>'>
                                                <img width='30' height='20' src='<%# ResolveClientUrl("~/images/delete.png") %>' /></a>
                                            <asp:PlaceHolder ID="Placeholder4" runat="server" Visible='<%# (decimal)Eval("STATUS_ID") != (int)StatusType.Verified %>'>
                                                <asp:ImageButton ID="ImageButton1" runat="server" CommandName="ATTRIBUTE" CommandArgument='<%# Eval("ATTR_ID") %>'
                                                    OnCommand="ButtonAction_Command" Width="30" Height="20" ImageUrl="~/images/approve.png"
                                                    ToolTip="Подтвердить атрибут" />
                                            </asp:PlaceHolder>
                                        </td>
                                    </asp:PlaceHolder>
                                    </tr>
                                </ItemTemplate>
                            </asp:Repeater>
                        </asp:PlaceHolder>
                        <asp:PlaceHolder runat="server" ID="plhEmpty">
                            <td width="100%" colspan='<%# Request.QueryString["optattr"] == null ? "3" : "5" %>'>
                                <label style="cursor: pointer; color: #999; font-weight: normal" class="labelSelect"
                                    title="Задать значение атрибута" onclick='ShowAddAttribute(<%# (decimal)Container.DataItem %>); return false;'>
                                    задать значение атрибута</label>
                            </td>
                        </asp:PlaceHolder>
                </ItemTemplate>
            </asp:Repeater>


...
Рейтинг: 0 / 0
05.02.2013, 16:04
    #38138232
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
МСУИтак, что же остается? Правильно, остается вот это:

Код: c#
1.
2.
3.
<ItemTemplate>
    <%# string.Format("<span style='color:red'>{0}</span>", Eval("AmountText")) %>
</ItemTemplate>




Не понял, где это в его коде?

автор
Код: c#
1.
2.
3.
<asp:BoundField DataField="Availability">
    <ItemStyle CssClass="availability-cell"></ItemStyle>
</asp:BoundField>



В ячейке либо будет пусто, либо результат в красном, о каких спанах речь?
...
Рейтинг: 0 / 0
05.02.2013, 16:05
    #38138235
The_Immortal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
Ребят, а кто-нибудь пример со статикой показать может? Ну что-нибудь более-менее серьезное.
Хочется прикинуть насколько больше там запар будет.
...
Рейтинг: 0 / 0
05.02.2013, 16:10
    #38138249
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
The_Immortal,
Вы что, это наш черный юмор без самйликов про статику.
Хотя почему бы нет, откройте блокнот и вперед.
...
Рейтинг: 0 / 0
05.02.2013, 16:18
    #38138269
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
МСУhandmadeFromRumonstrU
Я так понимаю ты в свой бред веришь. Что после databound не будет также рисоваться разметка или по особому сценарию пойдет? не смеши ...
Ага, тоже поржал. Значит, вычисления в ItemTemplate будут "выводиться максимально возможное время", а его код в Item_Databound как бы не считается :)

P.S. Я стараюсь прибивать гвозди использовать Item_Databound в самом последнем случае, если уж совсем никак. Намного правильнее и красивее сложную логику разметки заложить в модель представления, а грид просто натравить на это дело.
тут самое время mvc применять. а исходный то пример на формах - разве одно и то же ?
...
Рейтинг: 0 / 0
05.02.2013, 16:32
    #38138317
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
ПарамонМСУИтак, что же остается? Правильно, остается вот это:

Код: c#
1.
2.
3.
<ItemTemplate>
    <%# string.Format("<span style='color:red'>{0}</span>", Eval("AmountText")) %>
</ItemTemplate>




Не понял, где это в его коде?

автор
Код: c#
1.
2.
3.
<asp:BoundField DataField="Availability">
    <ItemStyle CssClass="availability-cell"></ItemStyle>
</asp:BoundField>



В ячейке либо будет пусто, либо результат в красном, о каких спанах речь?
Этого в коде нет и не должно быть, skyANA цитировал только то, что было неписано. Не фантазируй.
...
Рейтинг: 0 / 0
05.02.2013, 16:35
    #38138328
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
monstrU1. описываете idErrorLabel с атрибутом runat="server"
2. в item_databound получаете экземпляр idErrorLabel
3. если в источнике данных поле AmountText != null то у экзепляра idErrorLabel Visible=true
4. иначе Visible=false

c# код написать надо?

вот вся логика по поводу отображения сообщения об ошибке
В датабаунде ты должен в каждой итерации искать через FindControl контрол и колдовать над ним. Почему ты считаешь, что это быстрее, чем вычисления в темплейте? Где факты, замеры?

monstrU2. место размещения бизнес-логики и логики отображения отделено от представления
Логика отображения должна быть в модели представления, а не в каком-то там обработчике гриде.
...
Рейтинг: 0 / 0
05.02.2013, 16:37
    #38138339
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
monstrUтолько вот пример МСУ - это простой частный случай. привожу крайний случай такого подхода - достался мне в наследство.
восстановить логику repeaterа я не смог- вынужден был писать все с нуля
Ну это полная жесть, конечно. Я ведь написал сразу, если сложная логика отображения, то только модель представления. Если обычное тернарное телодвижение, можно не заморачиваться.
...
Рейтинг: 0 / 0
05.02.2013, 16:38
    #38138340
The_Immortal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
Где-то в степи, я к тому что насколько статика быстрее? :)

Вообще, изначально стояла задача: "сделать хоть как-нибудь".
Теперь же (после таких обсуждений) приближается вопрос: "а как бы реализовать все (или хотя бы бОльшую часть) оптимальным образом"?
Казалось бы такой примитивный пример, а столько замечаний...
...
Рейтинг: 0 / 0
05.02.2013, 16:39
    #38138348
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
monstrUМСУпропущено...

Ага, тоже поржал. Значит, вычисления в ItemTemplate будут "выводиться максимально возможное время", а его код в Item_Databound как бы не считается :)

P.S. Я стараюсь прибивать гвозди использовать Item_Databound в самом последнем случае, если уж совсем никак. Намного правильнее и красивее сложную логику разметки заложить в модель представления, а грид просто натравить на это дело.
тут самое время mvc применять. а исходный то пример на формах - разве одно и то же ?
Зачем mvc? К гриду кто-то запрещает байндить типизированные коллекции?
...
Рейтинг: 0 / 0
05.02.2013, 16:44
    #38138365
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
The_Immortal,
В общем то да, а если резюмировать и пример скучный и топик скучный и настроение не рабочее, и вообще скорей бы весна,
хотя толку то, за монитором все едино... декаданс короче..
...
Рейтинг: 0 / 0
05.02.2013, 16:54
    #38138394
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
МСУИменно поэтому я показал вот тут 13871063 другой способ для управления видимостью контрола
А какой смысл иначе делать?
...
Рейтинг: 0 / 0
05.02.2013, 16:57
    #38138405
iConst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
Где-то в степиThe_Immortal,
В общем то да, а если резюмировать и пример скучный и топик скучный и настроение не рабочее, и вообще скорей бы весна,
хотя толку то, за монитором все едино... декаданс короче.. ... еще и бегемот к заднице прилип...
...
Рейтинг: 0 / 0
05.02.2013, 16:57
    #38138408
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МСУ, зачем AmountText проверять на null?
monstrUМСУНамного правильнее и красивее сложную логику разметки заложить в модель представления, а грид просто натравить на это дело.
тут самое время mvc применять. а исходный то пример на формах - разве одно и то же ?
В чём проблемы писать правильно, а не через одно место?

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
    <h3><%= Model.Title %></h3>
    <asp:TextBox ID="tbText" runat="server" Text='<%# Model.Text %>' />
    <asp:GridView ID="grid" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:BoundField DataField="Html" HtmlEncode="false" />
        </Columns>
    </asp:GridView>
</asp:Content>



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public partial class _Default : BasePage
{
    public DefaultModel Model { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Model = Service.GetDefaultModel();
            grid.DataSource = Model.Items;
            DataBind();
        }
    }
}



Модель для представления Default
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
public class DefaultModel
{
    public string Title { get; set; }
    public string Text { get; set; }

    public IEnumerable<DefaultItemModel> Items { get; set; }
}

public class DefaultItemModel
{
    public int Id { get; set; }
    public string Html 
    { 
        get
        {
            if (Id == 1)
            {
                return "<a href='http://microsoft.com'>microsoft.com</a>";
            }

            return "<a href='http://sql.ru'>sql.ru</a>";
        }
    }
}

...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / МСУ, зачем AmountText проверять на null? / 25 сообщений из 75, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]