2013-06-25 60 views
0

爲了說明這一點,我查看了幾個包含listviews的帖子,沒有什麼比我想要做的更好。添加dataitem(從字符串數組)到列表視圖

我想採取通過有幾個循環確定的值如果類似於如下語句:

If Convert.ToInt32(GetData(ds.Tables("HRIS").Rows(i), "ABS_CO_RULE_DAYS", DefaultValue)) > 0 Or _ 
      Convert.ToInt32(GetData(ds.Tables("HRIS").Rows(i), "ABS_CO_RULE_HRS", DefaultValue)) > 0 Or _ 
      Convert.ToInt32(GetData(ds.Tables("HRIS").Rows(i), "ABS_CO_RULE_MINS", DefaultValue)) > 0 Then 
     msChargeDays = GetData(ds.Tables("HRIS").Rows(i), "ABS_CO_RULE_DAYS", DefaultValue) 
     msChargeHours = GetData(ds.Tables("HRIS").Rows(i), "ABS_CO_RULE_HRS", DefaultValue) 
     msChargeMins = GetData(ds.Tables("HRIS").Rows(i), "ABS_CO_RULE_MINS", DefaultValue) 
     msHowPaid = "CR DAYS" 
     AbsenceLine() 'calls sub 
End If 

的代碼塊源於它從調用數據集返回有效的結果。現在在下面的代碼塊中,我試圖同化由主代碼塊確定的值,如果語句結構與上面的塊類似,所有代碼塊都包含在For循環中,則主代碼塊的值大約爲40。

在下面的代碼塊中,我試圖將一個ListViewItem類型的對象插入到ListView中。這是我得到我的錯誤表示它後面的註釋字符串。填充ListViewItem的函數位於底部,返回的所有變量都是類變量,並將有效值返回給ListViewItem。我已經通過調試器進行了雙重檢查。

Private Sub AbsenceLine() 

    Dim sTypeReason As String 
    If msType = "" Then 
     sTypeReason = Left(msReason, 25) 
    Else 
     sTypeReason = msType & "--" & msReason 
    End If 

    Dim item As ListViewItem 
    item = New ListViewItem(ListViewItemType.DataItem) 

    item.DataItem = FillListView(sTypeReason) 

    absence_lv.Items.Add(item) 'this line here is what is givine me issues 

End Sub 

Private Function FillListView(typeReason As String) As IEnumerable(Of String) 

    Return {msDate, msVoid, msCont, msDays, msHours, msMinutes, typeReason, msChargeDays, msChargeHours, 
      msChargeMins, msHowPaid} 'all values returned are of String type 
End Function 
與背景

現在:

我是什麼,我試圖做的完全關閉基地?
是否有更簡單的方法來做到這一點,而不是一個GridView?

回答

0

我想你濫用ListViewItem類的DataItem屬性。這實際上用於在ListView本身綁定時獲取ListViewItem表示的底層對象。

由於您的FillListView函數正在返回IEnumerable(Of String),因此您可以將ListView的DataSource屬性設置爲函數調用。

absence_lv.Datasource = FillListView(sTypeReason) 
absence_lv.Databind() 

正如你所看到的,沒有必要手動添加每個項目。

+0

我剛開始嘗試過這種方式,並一直在獲取Null Reference Errors。我想出了使用GridView的替代方法,該方法對我們正在嘗試執行的操作來說很好。 – seroki

相關問題