Проверка страницы ASP.NET - PullRequest
       18

Проверка страницы ASP.NET

5 голосов
/ 15 октября 2008

Статья по теме

По теме, аналогичной приведенной выше статье, но более конкретной заметки. Как именно вы обрабатываете элементы, которые находятся в viewstate (поэтому они включены в submit), но также могут быть изменены через AJAX Например, скажем, у нас есть выпадающий список, который заполняется через вызов веб-службы AJAX (не панель обновления). Как я могу получить страницу для проверки после изменения элементов раскрывающегося списка?

Ответы [ 3 ]

3 голосов
/ 16 октября 2008

Вы не проверяете выпадающий список? Вы проверяете значение, выбранное пользователем. Это в значительной степени тот же совет, что и в другом посте, так как javascript или другие инструменты могут изменять html или создавать свои собственные POST, вы должны всегда проверять на стороне сервера. Предположим, что все клиентские запросы могут быть подделаны, и предположим, что проверка на стороне клиента не проводилась.


Если вы используете модель веб-форм ....

Если вы просто хотите проверить, выбрано ли значение в раскрывающемся списке myAjaxDropDown, используйте

<asp:RequiredFieldValidator id="dropdownRequiredFieldValidator"
          ControlToValidate="myAjaxDropDown"
          Display="Static"
          InitialValue="" runat=server>
          *
        </asp:RequiredFieldValidator>

Вы также можете посмотреть на asp: CustomValidator - для проверки на стороне сервера:

<asp:CustomValidator ID="myCustomValidator" runat="server" 
    onservervalidate="myCustomValidator_ServerValidate" 
    ErrorMessage="Bad Value" />

Оба подключаются к платформе валидации asp.net. например при нажатии кнопки с именем SumbitButton

protected void myCustomValidator_ServerValidate(object source, ServerValidateEventArgs e)
{
    // determine validity for this custom validator
    e.IsValid = DropdownValueInRange(myAjaxDropDown.SelectedItem.Value); 
}

protected void SubmitButton_Click( object source, EventArgs e )
{
    Validate(); 
    if( !IsValid )
        return;

    // validators pass. Continue processing.
}

Некоторые ссылки для дальнейшего чтения:

1 голос
/ 16 октября 2008

Вы можете вызвать функцию Page_Validate () из своего кода javascript, она вызовет валидаторы asp.net на странице, она в основном похожа на Page.Validate () в коде сервера

0 голосов
/ 15 октября 2008

почему бы не проверить onChange даже в выпадающем списке?

просто добавьте менеджер сценариев и добавьте это свойство в onchange в событии Page_Load

' Creating the javascript function to validate
Dim js As String
js = "function validateDDL1(ddl) { alert(ddl.value); }"

' Adding onChange javascript method
DropDownList1.Attributes.Add("onchange", "validateDDL1(this);")

' Registering the javascript
ScriptManager.RegisterClientScriptBlock(Me, GetType(String), "validateDDL1(ddl)", js, True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...