0

我的页面上有一个 CheckBoxList 表现不佳。

这个想法是,一旦单击表单上的提交按钮,应用程序应该清除与特定用户相关的所有行的数据库表,然后根据用户的 CheckBoxList 选择重新插入新行。

问题是,无论是否选择了 CheckBoxList 中的任何(或所有)项目,应用程序都会不断获取Selected = False.

这是我的代码:

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

    loadRegions()
End Sub

Private Sub loadRegions()

    Dim db As New Database

    Dim sql As String = "select * from regions"

    Dim dr As MySqlDataReader = db.execDB(sql, "Text", Nothing, "DataReader", False)

    If dr.HasRows Then

        cblRegion.DataSource = dr
        cblRegion.DataTextField = "regionname"
        cblRegion.DataValueField = "regionid"
        cblRegion.DataBind()
    End If

    dr.Close()
End Sub

Protected Sub btnRegister_Click(sender As Object, e As System.EventArgs) Handles btnRegister.Click
        ' ============================================================
        ' There's more code in here, but it's irrelevant to this paste
        ' ============================================================

        Dim sql As String = "delete from userregions where userid = " & lblUserID.Text & ";"

        For i As Integer = 0 To cblRegion.Items.Count - 1
            If cblRegion.Items(i).Selected Then
                sql &= "insert into userregions (userid, regionid)" & _
                    "values(" & UserID & ", " & cblRegion.Items(i).Value & ")"

                db.execDB(sql, "Text", Nothing, "None", False)
            End If
        Next
End Sub

作为记录
,我知道这里有 SQL 注入的可能性。一旦循环工作,我将继续使用参数。

谢谢你的时间。任何帮助将不胜感激。

4

3 回答 3

1

您只需要调用loadRegions初始加载而不是回发:

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        loadRegions()
    End If
End Sub

否则,您将丢失更改的值并且不会触发事件。

于 2012-06-13T11:53:39.103 回答
1

在加载的页面中,编写以下内容:

If Not IsPostBack
    loadRegions()
End If
于 2012-06-13T11:54:03.113 回答
1

在 Page_Load 方法中添加这行 copde "If IsPostBack Then Return"。

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    If IsPostBack Then Return
    loadRegions()
End Sub
于 2012-06-13T11:58:02.600 回答