いくつかのコントロールがオンになっているページがあります。コントロールのプロパティ/値の一部は、データベースからロードされます。その他は例えばです。1 ~ 31 の数字、1900 年 ~ 2012 年などの日付コンボ ボックスです。for ループでコンボ ボックスを設定したいのですが、Page_Init の早い段階でそれを行うと、すべての値が入力されることに気付きました。ビューステート。コントロールが非表示のときにポストバック全体で値を維持する必要があるため、これらのコントロールでビューステートを無効にしたくありません。
事実上、私はASP.NETがコントロールのデフォルト値をどのように決定するかを尋ねています-マークアップに値を入力してもビューステートに値を入れません.プログラムでそれを再現する方法を誰かが知っているかどうか疑問に思っていました. ?
test2.aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="test2.aspx.vb" Inherits="test2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddlTest" runat="server"></asp:DropDownList>
</div>
</form>
</body>
</html>
test2.aspx.vb
部分クラス test2 継承ページ
Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
If Request("addvals") IsNot Nothing Then
For i As Integer = 0 To 1000
ddlTest.Items.Add(i)
Next
End If
End Sub
クラス終了