我不确定这有多难,但我的checkboxList包含从数据库中填充的值。
这是标记:
<asp:CheckBoxList runat="server" ID="sects">
fieldname是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)相关联的值连接到网址中。
以下是网址:
http://default.html我们想连接它,所以看起来像这样:
http://default.html?parts="+sects.Items.Add(li)+"&docs=answers&name=meter.zip"
这不起作用。我收到一个错误,“这不会产生值
我们要完成的是使用包含该网址中的sects值的url字符串填充checkboxList。
任何想法如何让这个工作?
对不起伙计我只是继续回来了。在来到这里之前,我确实先尝试修复。
答案 0 :(得分: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
答案 1 :(得分: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 + "_";
}
答案 2 :(得分:0)
好的,我想我明白了。我删除了链接按钮,并且我更改了列表项,因此显示的文本是一个包含其中数据库字段的URL,作为URL参数。该值本身仍为数据库字段。但是,如果我可以问,这是什么样的设计?它看起来很不稳定。您可以使用不同的数据导航到这些页面吗?您希望允许多个选择,但是如何通过此路线将其考虑在内。如果您不希望用户能够进行多项选择,则应使用drop drown列表。我希望这对你有用,但我怀疑这个要求及其实现背后的逻辑。
标记:
<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