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

Короче, МСУ, пока ты будешь оставаться безоснавательным хамом, для меня ты полный му**к.
...
Рейтинг: 0 / 0
МСУ, зачем AmountText проверять на null?
    #38138009
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
МСУ, зачем AmountText проверять на null?
    #38138077
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
МСУ, зачем AmountText проверять на null?
    #38138083
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
Код: 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
МСУ, зачем AmountText проверять на null?
    #38138095
The_Immortal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrU, и что действительно при таком подходе игра стоит свеч?
...
Рейтинг: 0 / 0
МСУ, зачем AmountText проверять на null?
    #38138107
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
МСУ, зачем AmountText проверять на null?
    #38138118
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrU
Я так понимаю ты в свой бред веришь. Что после databound не будет также рисоваться разметка или по особому сценарию пойдет? не смеши ...
...
Рейтинг: 0 / 0
МСУ, зачем AmountText проверять на null?
    #38138137
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRumonstrU
Я так понимаю ты в свой бред веришь. Что после databound не будет также рисоваться разметка или по особому сценарию пойдет? не смеши ...
Ага, тоже поржал. Значит, вычисления в ItemTemplate будут "выводиться максимально возможное время", а его код в Item_Databound как бы не считается :)

P.S. Я стараюсь прибивать гвозди использовать Item_Databound в самом последнем случае, если уж совсем никак. Намного правильнее и красивее сложную логику разметки заложить в модель представления, а грид просто натравить на это дело.
...
Рейтинг: 0 / 0
МСУ, зачем AmountText проверять на null?
    #38138163
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
бред и то и это, статика наше все
http://www.puso.narod.ru/gotstatji.html
...
Рейтинг: 0 / 0
МСУ, зачем AmountText проверять на null?
    #38138173
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиМСУ, бред и то и это, статика наше все
Статика самая быстрая, никто не спорит. Но кому нужен статический хтмл нонче, все хотят динамику.
...
Рейтинг: 0 / 0
МСУ, зачем AmountText проверять на null?
    #38138202
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
Вот тут и выходит на передний план менеджер по продаже труда программиста, он должен так убедить клиента
что б он кроме статики ни о чем не мог думать, а так же ни есть и не спать, а требовать только статику.
( дешевле хост, малая подверженность к взлому, быстрая отдача и еще куча всякой х..и)
Вот приведу пример, случай произошел в реале с моим другом ( преферансист, играет на 10 досках с закрытыми глазами)
Как то зашел погреться в бутик на Тверской.
С его слов
- Ты не поверишь, как в тумане, выхожу из бутика под мышкой сорочка за 300 евро, и галстук за 150,
через 10 минут дошло : нах.я купил сам не пойму, девки красивые до ужаса...
...
Рейтинг: 0 / 0
МСУ, зачем AmountText проверять на null?
    #38138222
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
МСУ, зачем AmountText проверять на null?
    #38138232
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУИтак, что же остается? Правильно, остается вот это:

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

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

Код: 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
МСУ, зачем AmountText проверять на null?
    #38138328
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrU1. описываете idErrorLabel с атрибутом runat="server"
2. в item_databound получаете экземпляр idErrorLabel
3. если в источнике данных поле AmountText != null то у экзепляра idErrorLabel Visible=true
4. иначе Visible=false

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

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

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

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

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

P.S. Я стараюсь прибивать гвозди использовать Item_Databound в самом последнем случае, если уж совсем никак. Намного правильнее и красивее сложную логику разметки заложить в модель представления, а грид просто натравить на это дело.
тут самое время mvc применять. а исходный то пример на формах - разве одно и то же ?
Зачем mvc? К гриду кто-то запрещает байндить типизированные коллекции?
...
Рейтинг: 0 / 0
МСУ, зачем AmountText проверять на null?
    #38138365
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Immortal,
В общем то да, а если резюмировать и пример скучный и топик скучный и настроение не рабочее, и вообще скорей бы весна,
хотя толку то, за монитором все едино... декаданс короче..
...
Рейтинг: 0 / 0
МСУ, зачем AmountText проверять на null?
    #38138394
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУИменно поэтому я показал вот тут 13871063 другой способ для управления видимостью контрола
А какой смысл иначе делать?
...
Рейтинг: 0 / 0
МСУ, зачем AmountText проверять на null?
    #38138405
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиThe_Immortal,
В общем то да, а если резюмировать и пример скучный и топик скучный и настроение не рабочее, и вообще скорей бы весна,
хотя толку то, за монитором все едино... декаданс короче.. ... еще и бегемот к заднице прилип...
...
Рейтинг: 0 / 0
МСУ, зачем AmountText проверять на null?
    #38138408
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
25 сообщений из 75, страница 1 из 3
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / МСУ, зачем AmountText проверять на null?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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