我的 aspx 頁面上有以下代碼,其中正在 HTML 上形成串列視圖
′′′
<asp:ListView runat="server"
ID="VistaVehiculos"
DataSourceID="ADSParticipantes"
DataKeyNames="IDInscrito" ItemPlaceholderID="itemPlaceHolder"
OnItemDataBound="VistaVehiculos_ItemDataBound">
<ItemTemplate>
<td>
<asp:Label ID="lNum" runat="server" Height="80px" Width="83px" BackColor="Red"
Style="text-align:center; margin-left:5px; font-size:40px; padding-top:3px; font-family:'Doppio One', sans-serif; font-style:italic"
Text='<%# Eval("Num")%>'/>
<asp:Label ID="lTS" runat="server" Height="80px" BorderStyle="None"
Style="font-size:11px; display:block; margin-top:-80px; margin-left:8px"
text='<%# If(Eval("SEO1") Is DBNull.Value, "", "Correct"))%>'/>
</td>
</ItemTemplate>
<GroupTemplate>
<tr>
<asp:PlaceHolder runat="server" ID="itemPlaceholder" />
</tr>
</GroupTemplate>
<GroupSeparatorTemplate>
<tr id="Tr1" runat="server">
<td style="height:15px"></td>
</tr>
</GroupSeparatorTemplate>
<LayoutTemplate>
<table border="0">
<asp:PlaceHolder runat="server" ID="groupPlaceHolder" />
</table>
</LayoutTemplate>
</asp:ListView>
′′′
在標簽 id=lTS 中,我評估資料欄位“SEO1”
我需要做的是根據不同的要求將這些資料欄位設定為不同的值,以使用此頁面作為模板,使用加載 vba 程式。
這個案例指的是Safety Engine O1 - SEO1,如果我需要通過Safety Engine O2改變,我會評估SEO2資料欄位。
我找不到更改文本值的控制元件。
這有什么幫助嗎?
uj5u.com熱心網友回復:
好的,先上。您的標簽 VBA 不正確 VBA 是 Visual Basic for Applications(在 Word、Excel 和 ms-access 中使用的代碼系統)。
您正在使用 vb.net - 您應該更改您的標簽。
至于擺弄那個表情?你沒有提到 if() 現在是否有效?
然而,除了任何簡單的 Eval() 運算式之外,我發現它變得比去看牙醫嘗試燒掉一壺咖啡來注射/使用/擁有復雜的運算式更糟糕。擴展、撰寫和更改它們也相當痛苦。
因此,我建議您考慮設定值,并在代碼隱藏中撰寫代碼邏輯。
所以,我會將此控制元件更改為:
<asp:Label ID="lTS" runat="server" Height="80px" BorderStyle="None"
Style="font-size:11px; display:block; margin-top:-80px; margin-left:8px"
text = "" />
注意它現在什么都沒有。因為我們想對那個控制元件應用“更多”復雜的邏輯,那么將我們的代碼移動到專案資料系結事件是合適的地方!
所以,我們現在將有這個:
Protected Sub VistaVehiculos_ItemDataBound(sender As Object, e As ListViewItemEventArgs) Handles VistaVehiculos.ItemDataBound
If e.Item.ItemType = ListViewItemType.DataItem Then
' get the control we are to format
Dim SEOlbl As Label = e.Item.FindControl("ITS")
Dim dRow As DataRowView = e.Item.DataItem
' NOTE IN ABOVE - NOT list view item!!! - but DataRowItem!!!!!!!!!
Dim strResult As String = ""
If dRow("SafteyCase") = "Safety Engine O1" Then
strResult = dRow("SE1").ToString
Else
strResult = dRow("SE2").ToString
End If
If strResult = "" Then
strResult = "NO VALUE"
End If
SEOlbl.Text = strResult
End If
End Sub
請注意我們如何在這里自由獲取任何資料列,包括不在 lv 布局中的資料列,但當然它們必須在資料源中。
因此,您可以有條件地測驗您想要的任何內容,然后將該代碼的結果放入標簽中 - 該代碼可以是您想要的任何內容。
因此,從標簽中洗掉您的運算式,并在 lv 的資料系結事件中使用代碼。
不用說,你也可以使用這個事件來設定行的顏色,甚至是文本框,所以對于條件格式的技巧,你可以使用上面的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/345274.html
上一篇:使用換行符加載CSV
