嘿所有,我需要一些幫助,試圖找出爲什麼這個下拉列表不選擇後,我選擇一個值。ASP.net下拉值幫助
這裏是ASP.net的下拉部分:
<div id="divItemsPerPage" runat="server" style="font-size:60%;font-weight:bolder;padding-right:15px;">
Items per Page:
<asp:DropDownList ID="ddlPerPage" runat="server" AutoPostBack="true">
<asp:ListItem Text="10" Value="10" />
<asp:ListItem Text="25" Value="25" Selected="True" />
<asp:ListItem Text="50" Value="50" />
<asp:ListItem Text="100" Value="100" />
</asp:DropDownList>
</div>
,這是我的代碼隱藏:
Private Sub ddlPerPage_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlPerPage.SelectedIndexChanged
'LoadFromViewstate()
_rowsPerPage = Convert.ToInt32(ddlPerPage.SelectedItem.Value)
gvData.PageIndex = 0
SaveRowsCountToCookie(_rowsPerPage)
End Sub
Public Property RowsPerPage() As Integer
Get
Return Utils.cleanInt(ddlPerPage.SelectedValue)
End Get
Set(ByVal value As Integer)
Dim itmX As New ListItem(value.ToString, value.ToString)
ddlPerPage.SelectedIndex = -1
If ddlPerPage.Items.Contains(itmX) Then
ddlPerPage.Items.FindByValue(value.ToString).Selected = True
Else
ddlPerPage.SelectedIndex = -1
For i As Integer = 0 To ddlPerPage.Items.Count - 1
If Utils.cleanInt(ddlPerPage.Items(i).Value) > value Then
ddlPerPage.Items.Insert(i, itmX)
ddlPerPage.SelectedIndex = i
Exit For
End If
Next
End If
_rowsPerPage = value
ViewState("RowsPerPage") = _rowsPerPage
End Set
End Property
不管我選擇它仍具有相同的值,當頁開始。 _rowsPerPage =值似乎總是相同的。
UPDATE
好吧,看着它更緊密地似乎Convert.ToInt32(ddlPerPage.SelectedItem.Value)從來沒有正確的值當我選擇一個數字?
任何幫助將是偉大的! :O)
大衛
你修改視圖狀態,或者把它關掉? – 2010-09-27 13:05:16
這是什麼在** LoadFromViewstate **如果不是ViewState(「RowsPerPage」)是Nothing然後_rowsPerPage = CType(ViewState(「RowsPerPage」),整數),但我把它關閉測試沒有它,它似乎仍然留在一個價值。 – StealthRT 2010-09-27 13:09:52
你調試了你的代碼嗎?可能是您的selectedindex方法被多次調用,因爲您再次在rowsperpage方法中設置索引。每次收到的價值是多少? – ibram 2010-09-27 13:42:03