数据主义者在vb。试图获取datalist中行或单元格的特定值

时间:2012-01-28 15:51:29

标签: asp.net vb.net visual-studio-2010

我有一个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:&nbsp;
        <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 />


             

3 个答案:

答案 0 :(得分:5)

而不是RowsCellsDataList有一个名为Items的属性,可让您访问其数据绑定项的集合:

Dim itemIndex As Integer = 9
Dim label As Label = DataListPhotoGallery.Items(itemIndex).FindControl("PhotographerPhotoIdLabel")
Dim text As String = label.Text

如果您知道行索引和列索引而不知道项索引,那么您可以像这样计算项索引:

  • 如果RepeatDirectionHorizontal itemIndex = rowIndex * RepeatColumns + columnIndex
  • 如果RepeatDirectionVertical如果您需要,请发表评论,因为它相当复杂。

答案 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]

希望这会有所帮助。