我有一个vb web形式的数据列表。
如何获取数据列表的特定行和单元格中的值?
我可以为详情查看,但如何为datalist做?
以下是我的详细信息代码:
Dim selectedCommentAns As String = DetailsView.Rows(0).Cells(1).Text
我为datalist尝试了相同的方法,但它没有选择行和单元格。
这是我的数据主义者的asp标记:
<asp:DataList ID="DataListPhotoGallery" runat="server" CellPadding="5"
CellSpacing="12" DataKeyField="PhotographerPhotoId"
DataSourceID="SqlDataSourcePhotoGallery" RepeatColumns="3">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" BorderColor="#C7B273"
BorderStyle="Groove" BorderWidth="12px" Height="200px"
ImageUrl='<%# Eval("PhotographerPhotoImgPath", "images/UserUploadedPhoto/{0}") %>'
Width="220px" />
<br />
Photo No:
<asp:Label ID="PhotographerPhotoIdLabel" runat="server"
Text='<%# Eval("PhotographerPhotoId") %>' />
<br />
Photo Description:
<asp:Label ID="PhotographerPhotoDescLabel" runat="server"
Text='<%# Eval("PhotographerPhotoDesc") %>' />
<br />
Photo Name:
<asp:Label ID="PhotographerPhotoImgNameLabel" runat="server"
Text='<%# Eval("PhotographerPhotoImgName") %>' />
<br />
Photographer Name:
<asp:Label ID="PhotographerIdLabel" runat="server"
Text='<%# Eval("PhotographerName") %>' />
<br />
<asp:Button ID="AddCommentBtn" runat="server"
CommandArgument='<%# Eval("PhotographerPhotoId") %>' Font-Bold="True"
Font-Size="Medium" onclick="AddCommentBtn_Click" Text="Add Comment" />
<asp:Button ID="Button2" runat="server"
CommandArgument='<%# Eval("PhotographerPhotoId") %>' Font-Bold="True"
Font-Size="Medium" onclick="Button2_Click" Text="Order Photo" />
<br />
答案 0 :(得分:5)
而不是Rows
和Cells
,DataList
有一个名为Items
的属性,可让您访问其数据绑定项的集合:
Dim itemIndex As Integer = 9
Dim label As Label = DataListPhotoGallery.Items(itemIndex).FindControl("PhotographerPhotoIdLabel")
Dim text As String = label.Text
如果您知道行索引和列索引而不知道项索引,那么您可以像这样计算项索引:
RepeatDirection
为Horizontal
: itemIndex = rowIndex * RepeatColumns + columnIndex
RepeatDirection
为Vertical
:如果您需要,请发表评论,因为它相当复杂。答案 1 :(得分:1)
您可以使用
访问项目DataListPhotoGallery.Items
如果要访问特定项目,则需要查找要查找的对象。在这种情况下,您希望获得PhotographerPhotoIdLabel标签的值。
var PhotographerPhotoIdLabel = DataListPhotoGallery.Items[itemsId].FindControl("PhotographerPhotoIdLabel") as Label;
var yourString = PhotographerPhotoIdLabel.Text;
希望有所帮助
答案 2 :(得分:0)
您可以使用关注数据源来获取值。请参考以下代码以获取所需的值。
Dim dv As DataView
dv = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), DataView)
selectedCommentAns = dv.Table.Rows[0][1]
希望这会有所帮助。