Retreive在asp.net rpt_RowDataBound子datatable.column值 [英] Retreive datatable.column value in rpt_RowDataBound sub in asp.net

查看:185
本文介绍了Retreive在asp.net rpt_RowDataBound子datatable.column值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

根据在这个岗位所选择的答案<一个href=\"http://stackoverflow.com/questions/7725173/displaying-records-grouped-by-month-and-year-in-asp-net\">Displaying按月份和年份asp.net 分组的记录,我有一个改进的工作。

在rpt_RowDataBound子,而是采用了FileInfo对象,我需要使用一个数据库值(statusupdate)。

 如果一个月&LT;&GT; TryCast(e.Item.DataItem,FileInfo的).CreationTime.Month OrElse运算年&LT;&GT; TryCast(e.Item.DataItem,FileInfo的).CreationTime.Year然后

我怎么能代替的FileInfo 在上面的code。与行数据行(statusupdate)

code:

HTML

 &LT; ASP:直放站ID =RPT=服务器OnItemDataBound =rpt_RowDataBound可见=真&GT;
    &LT;&ItemTemplate中GT;
        &LT;表格的宽度=100%=服务器可见=真ID =headerTable&GT;
            &所述; TR&GT;
                &LT; TD合并单元格=3的风格=颜色:白色;类=TEXTFONT&GT;&LT; ASP:标签ID =headerTitle=服务器&GT;&LT; / ASP:标签&gt;&LT; / TD&GT;
            &LT; / TR&GT;
            &所述; TR&GT;
                &LT; TD FONT-SIZE =较小的ALIGN =中心的风格=宽度:10%;背景颜色:#3A4F63;颜色:白色;&gt;查看&LT; BR&GT;记录&LT; / TD&GT;
                &LT; TD FONT-SIZE =较小的ALIGN =中心的风格=宽度:20%;背景颜色:#3A4F63;颜色:白色;&GT;&经理ID LT; / TD&GT;
                &LT; TD FONT-SIZE =较小的风格=宽度:20%;背景颜色:#3A4F63;颜色:白色;&GT; DBCost&LT; / TD&GT;
                &LT; TD FONT-SIZE =较小的风格=宽度:20%;背景颜色:#3A4F63;颜色:白色;&GT;&组ID LT; / TD&GT;
                &LT; TD FONT-SIZE =较小的风格=宽度:20%;背景颜色:#3A4F63;颜色:白色;&GT;更新&LT; / TD&GT;
                &LT; TD FONT-SIZE =较小的风格=宽度:20%;背景颜色:#3A4F63;颜色:白色;&GT;&REPID LT; / TD&GT;
            &LT; / TR&GT;
        &LT; /表&gt;
        &LT;表格的宽度=100%BORDER =1&GT;
            &所述; TR&GT;
                &LT; TD风格=宽度:10%; ALIGN =中心&GT;&LT; ASP:标签ID =lblISONum=服务器&GT;&LT; / ASP:标签&gt;
                    &LT; ASP:超链接ID =imgFileType的ImageUrl =图片/ mag.gifNavigateUrl ='&LT;%#SetNavigateUrl(EVAL(RecID))%GT;' =服务器&GT;&LT; / ASP:超链接&GT;
                &LT; / TD&GT;
                &LT; TD风格=宽度:15%;&GT;&LT; ASP:标签FONT-SIZE =较小的ID =lblMID=服务器文本='&LT;%#的eval(经理ID)% &GT;'&GT;&LT; / ASP:标签&gt;&LT; / TD&GT;
                &LT; TD风格=宽度:20%;&GT;&LT; ASP:标签FONT-SIZE =较小的ID =lblDBA=服务器文本='&LT;%#的eval(dbCost)% &GT;'&GT;&LT; / ASP:标签&gt;&LT; / TD&GT;
                &LT; TD风格=宽度:20%;&GT;&LT; ASP:标签FONT-SIZE =较小的ID =lblGroup=服务器文本='&LT;%#的eval(组ID)% &GT;'&GT;&LT; / ASP:标签&gt;&LT; / TD&GT;
                &LT; TD风格=宽度:20%;&GT;&LT; ASP:标签FONT-SIZE =较小的ID =lblStatus=服务器文本='&LT;%#的eval(statusdate)% &GT;'&GT;&LT; / ASP:标签&gt;&LT; / TD&GT;
                &LT; TD风格=宽度:20%;&GT;&LT; ASP:标签FONT-SIZE =较小的ID =lblSalesRep=服务器文本='&LT;%#的eval(SalesRepID)% &GT;'&GT;&LT; / ASP:标签&gt;&LT; / TD&GT;
            &LT; / TR&GT;
        &LT; /表&gt;
    &LT; / ItemTemplate中&GT;
&LT; / ASP:直放站&GT;

code背后:

 保护小组rpt_RowDataBound(BYVAL发件人为对象,BYVAL E上RepeaterItemEventArgs)    如果e.Item.ItemType = ListItemType.Item OrElse运算e.Item.ItemType = ListItemType.AlternatingItem然后
        如果一个月&LT;&GT; TryCast(e.Item.DataItem,FileInfo的).CreationTime.Month OrElse运算年&LT;&GT; TryCast(e.Item.DataItem,FileInfo的).CreationTime.Year然后
            月= TryCast(e.Item.DataItem,FileInfo的).CreationTime.Month
            年= TryCast(e.Item.DataItem,FileInfo的).CreationTime.Year
            e.Item.FindControl(headerTable)。可见=真
            TryCast(e.Item.FindControl(headerTitle),标签)。文本= MONTHNAME(TryCast(e.Item.DataItem,FileInfo的).CreationTime.Month())及与&amp; TryCast(e.Item.DataItem,FileInfo的).CreationTime.Year()
        其他
            e.Item.FindControl(headerTable)。可见=假
        万一
    万一
结束小组

Page_Load事件:

 昏暗DT作为数据表=新的DataTable()
        昏暗DA作为SqlDataAdapter的=新SqlDataAdapter的(STRSQL,MyConnection的)
        da.Fill(DT)
        rpt.DataSource = DT
        rpt.DataBind()


解决方案

试试这个:

 保护小组rpt_RowDataBound(发送者为对象,E为RepeaterItemEventArgs)    如果e.Item.ItemType = ListItemType.Item OrElse运算e.Item.ItemType = ListItemType.AlternatingItem然后        如果一个月&LT;&GT; DateTime.Parse(TryCast(e.Item.DataItem,DataRowView的)(statusupdate)的ToString()。)月OrElse运算年&LT;&GT; DateTime.Parse(TryCast(e.Item.DataItem,DataRowView的)(statusupdate)。toString()方法),然后新年
            月= DateTime.Parse(TryCast(e.Item.DataItem,DataRowView的)(statusupdate)。toString()方法)。月
            年= DateTime.Parse(TryCast(e.Item.DataItem,DataRowView的)(statusupdate)。toString()方法)。年
            e.Item.FindControl(headerTable)。可见=真
            TryCast(e.Item.FindControl(headerTitle),标签)。文本=文件为&放大器; DateTime.Parse(TryCast(e.Item.DataItem,DataRowView的)(statusupdate)。的ToString())。ToShortDateString()
        其他
            e.Item.FindControl(headerTable)。可见=假
        万一
    万一
结束小组

Based on the selected answer in this post Displaying records grouped by month and year in asp.net, I have a modification to work with.

In the rpt_RowDataBound sub, instead of using a FileInfo object, I need to use a database value ("statusupdate").

If month <> TryCast(e.Item.DataItem, FileInfo).CreationTime.Month OrElse year <> TryCast(e.Item.DataItem, FileInfo).CreationTime.Year Then

How can I replace the "FileInfo" in the above code line with datarow("statusupdate")

Code:

HTML:

<asp:Repeater ID="rpt" runat="server" OnItemDataBound="rpt_RowDataBound" Visible="true">
    <ItemTemplate>
        <table width="100%" runat="server" visible="true" id="headerTable">
            <tr>
                <td colspan="3" style="color: White;" class="TextFont"><asp:Label ID="headerTitle" runat="server"></asp:Label></td>
            </tr>
            <tr>
                <td Font-Size="Smaller" align="center" style="width:10%; background-color: #3A4F63; color: White;">View<br>Record</td>
                <td Font-Size="Smaller" align="center" style="width:20%; background-color: #3A4F63; color: White;">ManagerID</td>
                <td Font-Size="Smaller" style="width:20%; background-color: #3A4F63; color: White;">DBCost</td>
                <td Font-Size="Smaller" style="width:20%; background-color: #3A4F63; color: White;">GroupID</td>
                <td Font-Size="Smaller" style="width:20%; background-color: #3A4F63; color: White;">Updated</td>
                <td Font-Size="Smaller" style="width:20%; background-color: #3A4F63; color: White;">RepID</td>
            </tr>
        </table>
        <table width="100%" border="1">
            <tr>
                <td style="width:10%;" align="center"><asp:Label ID="lblISONum" runat="server"></asp:Label>
                    <asp:HyperLink ID="imgFileType" ImageUrl="images/mag.gif" NavigateUrl='<%# SetNavigateUrl(Eval("RecID")) %>' runat="server"></asp:HyperLink>
                </td>
                <td style="width:15%;"><asp:Label Font-Size="Smaller" ID="lblMID" runat="server" Text='<%#Eval("managerid") %>'></asp:Label></td>
                <td style="width:20%;"><asp:Label Font-Size="Smaller" ID="lblDBA" runat="server" Text='<%#Eval("dbCost") %>'></asp:Label></td>
                <td style="width:20%;"><asp:Label Font-Size="Smaller" ID="lblGroup" runat="server" Text='<%#Eval("GroupID") %>'></asp:Label></td>
                <td style="width:20%;"><asp:Label Font-Size="Smaller" ID="lblStatus" runat="server" Text='<%#Eval("statusdate") %>'></asp:Label></td>
                <td style="width:20%;"><asp:Label Font-Size="Smaller" ID="lblSalesRep" runat="server" Text='<%#Eval("SalesRepID") %>'></asp:Label></td>
            </tr>
        </table>
    </ItemTemplate>
</asp:Repeater>

Code Behind:

Protected Sub rpt_RowDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)

    If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
        If month <> TryCast(e.Item.DataItem, FileInfo).CreationTime.Month OrElse year <> TryCast(e.Item.DataItem, FileInfo).CreationTime.Year Then
            month = TryCast(e.Item.DataItem, FileInfo).CreationTime.Month
            year = TryCast(e.Item.DataItem, FileInfo).CreationTime.Year
            e.Item.FindControl("headerTable").Visible = True
            TryCast(e.Item.FindControl("headerTitle"), Label).Text = MonthName(TryCast(e.Item.DataItem, FileInfo).CreationTime.Month()) & " " & TryCast(e.Item.DataItem, FileInfo).CreationTime.Year()
        Else
            e.Item.FindControl("headerTable").Visible = False
        End If
    End If
End Sub

Page_Load event:

        Dim dt As DataTable = New DataTable()
        Dim da As SqlDataAdapter = New SqlDataAdapter(strSQL, myConnection)
        da.Fill(dt)
        rpt.DataSource = dt
        rpt.DataBind()

解决方案

Try this:

Protected Sub rpt_RowDataBound(sender As Object, e As RepeaterItemEventArgs)

    If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then

        If month <> DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).Month OrElse year <> DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).Year Then
            month = DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).Month
            year = DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).Year
            e.Item.FindControl("headerTable").Visible = True
            TryCast(e.Item.FindControl("headerTitle"), Label).Text = "Files for " & DateTime.Parse(TryCast(e.Item.DataItem, DataRowView)("statusupdate").ToString()).ToShortDateString()
        Else
            e.Item.FindControl("headerTable").Visible = False
        End If
    End If
End Sub

这篇关于Retreive在asp.net rpt_RowDataBound子datatable.column值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆