【问题标题】:IF SelectedItem.Equals ??? Then redirect StatementIF SelectedItem.Equals ???然后重定向语句
【发布时间】:2012-03-13 19:41:26
【问题描述】:

我在 Visiual Studio 2010 中构建的网站中有一个 gridview。我是编程新手,并且有一个关于根据 gridview 的结果将用户重定向到另一个页面的查询。

我的 gridview 工作得非常好,并通过下拉列表中的选择拉回项目。这些项目已分配 ID(1 表示每周,2 表示每月)。

我的用户从下拉列表中选择“每周”或“每月”选项,网格视图将填充此数据。 (这部分工作得很好)。

显示结果后,我希望用户按下“创建”按钮,然后根据下拉列表中的选定项目将他们定向到正确的 Weekly.aspx 或 Monthly.aspx 页面。

到目前为止,我有以下代码似乎将用户重定向到 Monthly.aspx 页面,以便从下拉列表中进行选择。

Protected Sub btnCreate_Agenda_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCreate_Agenda.Click

    If DropDownList1.SelectedItem.Equals("1") Then
        Response.Redirect("Weekly.aspx")
    Else
        Response.Redirect("Monthly.aspx")
    End If

End Sub

谁能指出我正确的方向?

在我的页面加载事件中,我还想确保网页项目 1(每周)是默认选择。我已经尝试通过将以下代码添加到 page_load 事件来做到这一点,但我不知道结果。

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

    DropDownList1.SelectedItem.Equals("1")

End Sub

【问题讨论】:

    标签: asp.net if-statement asp.net-controls


    【解决方案1】:

    您需要将值分配到下拉列表或选择项目的索引,而不是比较当前值。

    DropDownList1.SelectedValue = "1"
    

    或者

    DropDownList1.SelectedIndex = 1
    

    【讨论】:

    • SelectedItem 属性是只读的,你不能给它分配任何东西。
    【解决方案2】:

    SelectedItem 属性将返回一个ListItem 对象,因此它永远不会等于字符串"1"。请改用SelectedValue 属性:

    If DropDownList1.SelectedValue = "1" Then
      Response.Redirect("Weekly.aspx")
    Else
      Response.Redirect("Monthly.aspx")
    End If
    

    关于设置默认值,SelectedItem 属性是只读属性。使用SelectedIndexSelectedValue 属性来选择一个项目:

    DropDownList1.SelectedValue = "1"
    

    【讨论】:

    • 这是一种享受。我有点不确定我是否应该在语句中使用 SelectItem 或 SelectValue,并且通过从 ID 中删除 () 可以正常工作。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 2020-07-18
    相关资源
    最近更新 更多