0

我不确定这有多困难,但我有一个从数据库填充值的 checkboxList。

这是标记:

<asp:CheckBoxList runat="server" ID="sects">

字段名是 doclist,我将这些值读入:

While objReader.Read()
  With objReader
    Dim li As New ListItem(objReader(0).ToString())
    sects.Items.Add(li)
  End With
End While

到目前为止效果很好。很大程度上要感谢我在这里得到的巨大帮助。

但是,我们希望将与 sects.Items.Add(li) 关联的值连接到一个 url 中。

以下是网址:

http://default.html,我们想将它连接起来,使它看起来像这样:

http://default.html?parts="+sects.Items.Add(li)+"&docs=answers&name=meter.zip"

这行不通。我收到一个错误,“这不会产生值

我们正在尝试完成的是使用包含该 url 中的 sects 值的 url 字符串填充 checkboxList。

任何想法如何让它发挥作用?

对不起,伙计们,我只是继续回来更多。在来这里之前,我确实尝试先修复。

4

3 回答 3

0

尝试:

sects.Items(//Index of Item).ToString()

http://default.html?parts="+sects.Items(//Index of Item).ToString()+"&docs=answers&name=meter.zip" 

或者:(对于 asp 已经有一段时间了,但我认为这样的东西是可用的)

sects.SelectedValue.ToString()

该部分sects.Items.Add(li)是将对象添加到CheckBoxList

于 2012-07-23T17:14:26.453 回答
0
    string urlappend = null;
    for (int i = 0; i < CheckBoxList1.Items.Count; i++)
    {
        urlappend += CheckBoxList1.Items[i].Value + "_";
    }

您需要遍历复选框列表中的项目并将其值附加为字符串,然后将该字符串添加到 URL,这样将获得所有值。同样在上面的代码中,我使用“_”作为分隔符来标识每个项目的值。

如果您只想要选定的项目,那么您可以添加以下条件

    for (int i = 0; i < CheckBoxList1.Items.Count; i++)
    {
        if(CheckBoxList1.Items[i].Selected)
        urlappend += CheckBoxList1.Items[i].Value + "_";

    }
于 2012-07-23T17:33:59.167 回答
0

好吧,我想我理解得更好了。我删除了链接按钮并更改了列表项,因此显示的文本是一个 URL,其中包含数据库字段,作为 URL 参数。该值本身仍然是数据库字段。但如果我可能会问,这是一种什么样的设计?它看起来非常不稳定。您可以导航到呈现不同数据的这些页面吗?您希望允许多项选择,但是如何通过这条路线考虑到这一点。而且,如果您不希望用户能够进行多项选择,则应该使用下拉淹没列表。我希望这对你有用,但我对这个要求及其实施背后的逻辑持怀疑态度。

标记:

<asp:CheckBoxList runat="server" ID="sect" CssClass="checkAll" AutoPostBack="true" >
</asp:CheckBoxList>   

代码背后:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        Dim strSQL As String = "SELECT AppealNumber FROM Appeals"
        Dim connStr As String = ConfigurationManager.ConnectionStrings("connstr").ConnectionString
        Dim conn As New SqlConnection(connStr)
        Dim cmd As New SqlCommand(strSQL, conn)
        Dim objReader As SqlDataReader
        conn.Open()
        objReader = cmd.ExecuteReader()
        '   |||||   Loop through the Reader to retrieve data    
        '   |||||   and set each checkbox to appropriate data from datasource
        While objReader.Read()
            With objReader
                Dim li As New ListItem("Default.aspx?parts=" + objReader(0).ToString(), objReader(0).ToString())
                sect.Items.Add(li)
            End With
        End While
    End If
End Sub
于 2012-07-23T17:47:30.177 回答