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 に連結したいと考えています。

以下がURLです。

http://default.htmlを連結して、次のようにします。

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

これはうまくいきません。「これは値を生成しません」というエラーが表示されます

私たちが達成しようとしているのは、checkboxList に、その URL 内の宗派の値を含む URL 文字列を入力することです。

これを機能させる方法はありますか?

申し訳ありませんが、私はもっと戻ってきます。ここに来る前に、最初に修正しようとします。

4

3 に答える 3

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

試す:

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

わかりました、私はよく理解していると思います。リンク ボタンを削除し、リスト アイテムを変更して、表示されるテキストが 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 に答える