2014-02-05 48 views
0

我在寫一個小的子例程,因此它動態地填充了DropDownLists。使用變量設置CType控件ID

但是,當涉及到使用變量傳遞控件ID時,我不確定是否已正確設置參數。它被用來生成使用24小時時間DropDownLists即SHH

的問題是在這裏:

fName = CType(ctrl.FindControl("sHH"), DropDownList) 

的噓我需要相同的值FNAME。我曾嘗試來連接:

fName = CType(ctrl.FindControl("'" & sHH & "'"), DropDownList) 

這是我的錯誤,當我做以上:

操作「&」的類型「字符串」沒有定義,並且「的System.Web.UI .WebControls.DropDownList」。

開始時間(07〜21) 開始分鐘(00〜45)

結束時間(07〜21) 結束分鐘(00〜45)

我不得不補充:

Private Property sHH As DropDownList 
    Private Property sMM As DropDownList 
    Private Property eHH As DropDownList 
    Private Property eMM As DropDownList 

這裏是我的聲明:

'Populate arrays 
    Dim ddlHours() As Integer = {"07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21"} 
    Dim ddlQuarter() As Integer = {"00", "15", "30", "45"} 

    popDDL(sHH, FormView1, ddlHours, 3) 
    popDDL(sMM, FormView1, ddlQuarter, 1) 
    popDDL(eHH, FormView1, ddlHours, 3) 
    popDDL(eMM, FormView1, ddlQuerter, 1) 

這裏是我的子程序:

Public Sub popDDL(ByVal fName As DropDownList, ByRef ctrl As Control, ByVal iDDL() As Integer, Optional ByVal OpLoopTo As Integer = 0) 
    'Find the control 
    fName = CType(ctrl.FindControl("sHH"), DropDownList) 

    'Loop through the length of iDDL items 
    For i As Integer = 0 To iDDL.Length - 1 

     'Loops through optional value so that I can add leading zeros if necessary 
     If OpLoopTo > -1 Then 

      Dim j As Integer = 0 

      If j < OpLoopTo Then 
       j += 1 
       'Add Leading zeros to the first values 
       fName.Items.Add(iDDL(i).ToString("D2")) 
      Else 
       'No leading for the remaining 
       fName.Items.Add(iDDL(i)) 
      End If 
     Else 
      fName.Items.Add(iDDL(i)) 
     End If 

    Next 
End Sub 

我只是一直在做.NET一個多星期,我不確定我是否已正確設置參數我。

任何想法

回答

0

我的道歉,這並不困難。我走開,帶着新鮮的眼睛回來。

我創建了一個名爲fieldID一個額外的參數作爲字符串

聲明:

popDDL(sHH, "sHH", FormView1, ddlHours, 3) 

功能參數和用法:

Public Sub popDDL(ByVal fName As DropDownList, ByRef fieldID As String, ByRef ctrl As Control, ByVal iDDL() As Integer, Optional ByVal OpLoopTo As Integer = 0) 
     'Find the control 
     fName = CType(ctrl.FindControl(fieldID), DropDownList) 

對不起任何浪費的時間。

+0

它很好,你工作了...有時這些東西閃現在你身上。你能把這個標記爲你的答案嗎? – Mych

+0

我只能在恐懼的兩天後將自己的答案標記爲正確。 –

+0

我不知道...顯示我已經設法回答我自己的問題的次數。 – Mych