Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Просто подскажите / 12 сообщений из 12, страница 1 из 1
25.04.2003, 09:44
    #32148486
Samir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просто подскажите
Есть такая строка в ASPX

<asp:dropdownlist id="lststreet" runat=server />

в VB есть программа которая ее заполняет (примерно 1000 записей)
Результат - у клиента скрытое поле огромной длины

Как это предотвратить?
...
Рейтинг: 0 / 0
25.04.2003, 10:05
    #32148517
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просто подскажите
похоже это viewstate. избавиться от него можно так:

Save server control view state only when necessary.
Automatic view-state management is a feature of server controls that enables them to repopulate their property values on a round trip (without you having to write any code). This feature does impact performance, however, since a server control's view state is passed to and from the server in a hidden form field. You should be aware of when view state helps you and when it hinders your page's performance. For example, if you are binding a server control to data on every round trip, the saved view state is replaced with new values that are obtained from the data-binding operation. In this case, disabling view state saves processing time.
View state is enabled for all server controls by default. To disable it, set the EnableViewState property of the control to false, as in the following DataGrid server control example.

<asp:datagrid EnableViewState="false" datasource="..." runat="server"/> --- для своего dropdownlist
You can also disable view state for an entire page by using the @ Page directive. This is useful when you don't post back to the server from a page:

<%@ Page EnableViewState="false" %>
Note The EnableViewState attribute is also supported in the @ Control directive, which allows you to control whether view state is enabled for a user control.
To analyze the amount of view state used by the server controls on your page, enable tracing for the page (by including a trace="true" attribute in the @ Page directive) and look at the Viewstate column of the Control Hierarchy table. For information about tracing and how to enable it, see ASP.NET Trace.

также в MSDN есть интересная статья Developing High-Performance ASP.NET Applications [C#] ищется по view states.
...
Рейтинг: 0 / 0
25.04.2003, 10:28
    #32148557
Samir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просто подскажите
Спасибо сработало.

Вот еще проблема. Выбираю значение из списка, возвращаю значение клиенту. Значение всегда первое по списку.

Что я делаю не так?
...
Рейтинг: 0 / 0
25.04.2003, 10:40
    #32148581
Samir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просто подскажите
Еще добавлю, что на клиенте

<form name="_ctl0" method="post" action="ah.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE" value="dDwtNTYwODU4NjI3Ozs+S6xcpvgV=" />

хотя написал
<%@ Page EnableViewState="false" %>
...
Рейтинг: 0 / 0
25.04.2003, 10:48
    #32148594
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просто подскажите
Вот еще проблема. Выбираю значение из списка, возвращаю значение клиенту. Значение всегда первое по списку.

Что я делаю не так?


Ты уж напиши, как делаешь.
...
Рейтинг: 0 / 0
25.04.2003, 11:06
    #32148628
Samir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просто подскажите
ASPX
<asp:dropdownlist id="lststreet" runat=server />


VB

Public Class AdvancedSearch : Inherits Page
Protected lbltext as label
Protected lststreet as dropdownlist
Dim CS As String = "Provider=SQLOLEDB.1; Data source=server;" & _
"Initial Catalog=UnixBase; User id=login; Password=passwd"
Dim con As New OleDBConnection(CS)

Private SUB Page_load(sender As Object, e As EventArgs) Handles MyBase.load

FillStreet()
if txtats.text & txtfio.text & txtadr.text = ""
return
end if

Dim SelectSql As String = ""

lbltext.text = lststreet.selecteditem.value
End Sub

Private Sub FillStreet()

Dim SelectSql As String = "Select * from str"
Dim cmd As New OleDBCommand(SelectSQL, con)
Dim adapter As New OleDBDataAdapter(cmd)
Dim Street As New DataSet()

Try
con.Open()
lststreet.datavaluefield = "st_kod"
lststreet.datatextfield = "st_name"
adapter.fill(Street, "Street")
lststreet.datasource = street
me.databind()

Catch err As Exception
lbltext.text = err.message()
Finally
If (Not con Is Nothing) Then
con.close()
End If
End Try

End Sub

End class
...
Рейтинг: 0 / 0
25.04.2003, 11:53
    #32148703
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просто подскажите
Ну?

Ты тут просто заполняешь список значениями из селекта - и все.

А что не так и что нужно?
...
Рейтинг: 0 / 0
25.04.2003, 13:01
    #32148783
Samir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просто подскажите
lbltext.text = lststreet.selecteditem.value

после отправки формы на сервер
lststreet.selecteditem.value все время одно и тоже число
...
Рейтинг: 0 / 0
25.04.2003, 16:11
    #32149101
хк
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просто подскажите
У меня тоже такая фигня постоянно была когда EnableViewState = false...
когда EnableViewState = true - все срабатывает
...
Рейтинг: 0 / 0
25.04.2003, 16:42
    #32149136
Полуэкт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просто подскажите
сам же его и отключил..

сохраняй нужное значение в sessions между загрузками страницы.
...
Рейтинг: 0 / 0
25.04.2003, 16:49
    #32149144
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просто подскажите
ViewState лучше у страницы не отключать - отключать только у тех компонентов, значения которых не редактируются или не важны или вообще не нужны.
...
Рейтинг: 0 / 0
25.04.2003, 16:53
    #32149150
Полуэкт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Просто подскажите
дык он потому и задавал вопрос - что бы отключить именно тот самый список т.к. он ему генерирует х.тучу лишнего траффика.. думаю разумно.. просто надо дописать две строчки кода - передачи собственно значения... и все..
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Просто подскажите / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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