powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Работа с TemplatedField
19 сообщений из 19, страница 1 из 1
Работа с TemplatedField
    #38549668
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Раскрашиваю строчки GV в зависимости от значения поля TF

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (((Label)e.Row.FindControl("label8")).Text == "1")
                {
                    e.Row.ForeColor = System.Drawing.Color.Red;
                }
            }
        }



Но после этого, по какой-то причине не получается произвести изменение в строке GV, реакция на Edit следующая:
ErrorОшибка: Sys.WebForms.PageRequestManagerServerErrorException: Ссылка на объект не указывает на экземпляр объекта.

Подскажите в чём дело, и что делать.
Спасибо
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38549936
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поставьте в Вашем коде точку останова и гляньте под дебагом - какая именно ссылка не указывает на экземпляр
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38549984
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErrorСсылка на объект не указывает на экземпляр объекта.

у меня есть сильное подохрение, што надо указать ссылку на реальный экземпляр объекта. что-то мне подсказывает...
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38550031
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,

... у вас Edit через CommandField реализовано, или еще как?
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38551300
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotik,
через CommandField

Я не так много работаю с GV, не знаю как поставить точку останова в коде Edit
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38551302
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
&&!u)throw n;},_ensureUniqueIds:function(n){var i,t,f,r,u;if(!n)

Это как-то поможет для идентификации проблемы ?
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38551714
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,

... Бог его знает, где у вас затыка, но я вот проверил на своем простеньком гриде вашу раскраску - у меня работает ... Я пример реальный приведу, вы посмотрите, чем у вас отличается

Код: 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.
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:TelephoneConnectionString %>"
SelectCommand="SELECT * FROM Users ORDER BY otdel, familyname" 
UpdateCommand="UPDATE Users SET FirstName = @FirstName, 
Patronim = @Patronim, 
OfficePhone = @OfficePhone, 
CityOfficePhone = @CityOfficePhone, 
CellPhone = @CellPhone,
Email = @Email, AutoDial = @AutoDial, 
Otdel = @Otdel, Hostip = @Hostip
WHERE Serial = @Serial" DeleteCommand="DELETE FROM Users WHERE Serial = @Serial">
            <UpdateParameters>
                <asp:Parameter Type="int32" Name="Serial" />
                <asp:Parameter Type="string" Name="FamilyName" />
                <asp:Parameter Type="string" Name="FirstName" />
                <asp:Parameter Type="string" Name="Patronim" />
                <asp:Parameter Type="string" Name="OfficePhone" />
                <asp:Parameter Type="string" Name="CityOfficePhone" />
                <asp:Parameter Type="string" Name="CellPhone" />
                <asp:Parameter Type="string" Name="Email" />
                <asp:Parameter Type="string" Name="AutoDial" />
                <asp:Parameter Type="int32" Name="Otdel" />
                <asp:Parameter Type="string" Name="Hostip" />
            </UpdateParameters>
        </asp:SqlDataSource>
        <asp:GridView ID="GridView1" runat="server" 
AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound" DataKeyNames="serial"            
Width="90%" DataSourceID="SqlDataSource1" 
CellPadding="2" ForeColor="#333333"            
GridLines="Both" AllowPaging="True" PageSize="10" ShowFooter="True">
            <Columns>
                <asp:CommandField ShowEditButton="True" />
                <asp:TemplateField HeaderText="Удалить">
                    <ItemTemplate>
                        <asp:Button ID="deleteButton" runat="server" CommandName="Delete" Text="Удалить"
                            OnClientClick="return confirm('Удалить эту позицию?');" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Otdel" HeaderText="Отдел" SortExpression="Otdel" />
                <asp:TemplateField HeaderText="Ф.И.О">
                    <ItemTemplate>
                        <asp:Label ID="Label1" Text='<%# Eval("FamilyName") %>' runat="server"></asp:Label>
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
                        <asp:Button ID="AddButton" OnClick="InsertNew" runat="server" Text="Добавить" />
                    </FooterTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="OfficePhone" 
HeaderText="Телефон внутренний" SortExpression="OfficePhone" />
                <asp:BoundField DataField="CityOfficePhone" 
HeaderText="Телефон городской" SortExpression="CityOfficePhone" />
                <asp:BoundField DataField="CellPhone" 
HeaderText="Телефон мобильный" SortExpression="CellPhone" />
                <asp:BoundField DataField="Email" 
HeaderText="Email" SortExpression="Email" />
                <asp:BoundField DataField="AutoDial" 
HeaderText="Автонабор" SortExpression="AutoDial" />
                <asp:BoundField DataField="Hostip" 
HeaderText="IP Address" SortExpression="Hostip" />
                

            </Columns>
            <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
            <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>



... а в кодебехайнд такой же RowDataBound - у меня VB.NET, но принцип тот же ... Все работает

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GridView1.RowDataBound

        If e.Row.RowType = DataControlRowType.DataRow Then

            If CType(e.Row.FindControl("Label1"), Label).Text.Contains("Анна") Then
                e.Row.ForeColor = Drawing.Color.Red
                e.Row.BackColor = Drawing.Color.White
            End If

        End If
    End Sub



.... вот если использовать RowCreated, тогда да, ексепшн ловит на этом методе при переходе в режим Edit ...
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38551720
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercurycarrotik,
через CommandField

Я не так много работаю с GV, не знаю как поставить точку останова в коде Editя сказал поставить точку останова в Вашем коде а не в каком-то коде Edit.
Вы же видите по CallStack где именно возникает исключение? Это Вашем коде или нет?
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38551758
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаганельSashaMercurycarrotik,
через CommandField

Я не так много работаю с GV, не знаю как поставить точку останова в коде Editя сказал поставить точку останова в Вашем коде а не в каком-то коде Edit.
Вы же видите по CallStack где именно возникает исключение? Это Вашем коде или нет?

... да, скорее всего, именно в RowDataBound оно выскакивает как раз на строке, где FindControl, который в режиме Edit не успевает отрендериться ... Но это только догадки ...
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38552714
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Unhandled exception at line 1, column 126350 in http://localhost:52391/bundles/MsAjaxJs?v=J4joXQqg80Lks57qbGfUAfRLic3bXKGafmR6wE4CFtc1

0x800a139e - Ошибка выполнения JavaScript: Sys.WebForms.PageRequestManagerServerErrorException: Ссылка на объект не указывает на экземпляр объекта.
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38552715
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А,да. Ошибка на FindControl !
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38552724
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему, непонятно. точнее что делать непонятно
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38552826
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделать условие на данные, а не на текст Label
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38552839
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста как это будет выглядеть, например
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38552848
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например DataBinder.Eval(e.Row.DataItem, "TF")
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38552872
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведите пожалуйста весь кусок кода
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38552877
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if ((DataBinder.Eval(e.Row.DataItem, "TF") as string) == "1")
                {
                    e.Row.ForeColor = System.Drawing.Color.Red;
                }
            }
        }

проверяйте
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38555186
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заработало ! Спасибо C:

А почему стало работать ?
...
Рейтинг: 0 / 0
Работа с TemplatedField
    #38555342
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryА почему стало работать ?чтобы это выяснить, Вам придется проверить то, о чем выше писал carrotik
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Работа с TemplatedField
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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