2017-07-06 7 views
0

私はVB.NETとASP.NETのWebサイトで作業しています。私は現在、ユーザーが入力を提供するために定期的なDropDownListsを持っています。FindControlを使用してドロップダウンリストの値を見つける方法は?

デザインは繰り返し発生します。これらのDropDownListsは、データベーステーブルから値を取得します。Webインターフェイスを使用しているすべてが、これらの定期的な値をデータベースに書き込む以外は機能しています。

私はそうのように、それぞれのDropDownListのIDを設定していますDatabaseReaderを読みながらループである

FrequencyList.ID = String.Concat("FreqList", DBReader(0)) 

これは(私はそれが読みやすくするには、下のコードを簡素化注意してくださいと私は問題を抱えているものです:

Dim i As Integer 
    DBCommand = New SqlCommand() 

    DBCommand.Connection = DBConnection 
    DBCommand.CommandType = Data.CommandType.StoredProcedure 
    DBCommand.CommandText = "StoredProcedureName" 
    DBConnection.Open() 
    For i = 1 To AspectTableLength 


     Dim ParamFrequencyID As SqlParameter = DBCommand.Parameters.Add("@nFrequencyID", SqlDbType.Int) 
     ParamFrequencyID.Value = FindControl("FreqList" & Convert.ToString(i)) 
     ParamFrequencyID.Direction = ParameterDirection.Input 
    Next 

それが値にアクセスしていないためFindControl("FreqList" & Convert.ToString(i))変数が間違っている - と追加.SelectedItem.Valueは動作しません。

+0

のでFrequencyListが一つだけ選択された値を持つドロップダウンリストで、正直私はドン」あなたが達成しようとしていることを知っている、ユーザーはリストを取得し、次に彼は1つの値を選択します... – hardkoded

+0

@kblok - 私はちょうど質問を更新しました - 周波数リストはFreqList1、FreqList2、FreqList3ユーザーはこのデータを50回入力しなければならず、これらのデータからそれぞれのデータを読み取る必要があります。私はFindControlが私が探しているものであることを発見しましたが、残りの部分を把握できないようです。 –

+0

すごく良い – hardkoded

答えて

1

私は、開発者からの助けを得ました。

Dim MyControls As ControlCollection = Panel.Controls 
     Dim Number As Integer 'this is the same as "DBReader(0)" 

     For Each MyControl As Control In MyControls 
      If MyControl.ID Is Nothing Then 
      Else 
       If MyControl.ID.StartsWith("Span") Then 
        Number = Replace(MyControl.ID, "Span", "") 
        Dim Freq As DropDownList = PanelMain.FindControl(“FreqList” & Number) 

        Dim ParamFrequencyID As SqlParameter = DBCommand.Parameters.Add("@nFrequencyID", SqlDbType.Int) 
        ParamFrequencyID.Value = Freq.SelectedIndex 
        ParamFrequencyID.Direction = ParameterDirection.Input 

        DBCommand.ExecuteNonQuery() 
        DBCommand.Parameters.Clear() 
       End If 
      End If 
     Next 

     DBConnection.Close() 
関連する問題