Asp.net ListView项已创建回发

Asp.net ListView项已创建回发,asp.net,.net,listview,Asp.net,.net,Listview,我对ListView的工作原理有点迷茫 创建ListView时,我会根据结果集中的数据进行着色 protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e) { DataRow myRow; DataRowView myRowView; myRowView = (DataRowView)e.Item.DataItem; myRow = myRowView.Row;

我对ListView的工作原理有点迷茫

创建ListView时,我会根据结果集中的数据进行着色

protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
{
    DataRow myRow;
    DataRowView myRowView;
    myRowView = (DataRowView)e.Item.DataItem;
    myRow = myRowView.Row;
    HtmlTableRow myTR = (HtmlTableRow)e.Item.FindControl("trRow");
    HtmlTableCell myTC = (HtmlTableCell)e.Item.FindControl("tdCell");

    Label myCB = (Label)e.Item.FindControl("ResultLabel1");
    if (myRow["Result"].ToString().Equals("true"))
        myTC.Style.Value = "background-color:#00FF00;color: #000000;";
    else
        myTC.Style.Value = "background-color:#FF0000;color: #000000;";
}
ListView有一个寻呼机,这会导致对ItemCreated的回发,我无法再次访问dataRow

有没有建议如何处理这个问题,以便我可以处理回发

更新: 我更改了代码以读取名为ResultLabel1的标签的实际值,该值为True/False,但返回空字符串。。我认为这比从数据集的结果中读取结果要好。有人能看出哪里出了问题吗

代码:

ASP.NET:

            <ItemTemplate>
            <tr id="trRow" runat="server" style="">
                <td>
                    <asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>' />
                </td>
                <td>
                    <asp:Label ID="DateTime_StartLabel" runat="server" 
                        Text='<%# Eval("DateTime_Start") %>' />
                </td>
                <td>
                    <asp:Label ID="DateTime_EndLabel" runat="server" 
                        Text='<%# Eval("DateTime_End") %>' />
                </td>
                <td>
                    <asp:Label ID="TestCaseNameLabel" runat="server" 
                        Text='<%# Eval("TestCaseName") %>' />
                </td>
                <td>
                    <asp:Label ID="ModelNameLabel" runat="server" Text='<%# Eval("ModelName") %>' />
                </td>
                <td id="tdCell" runat="server">
                    <asp:Label ID="ResultLabel1" runat="server" 
                        Text='<%# Eval("Result") %>' />
                </td>
            </tr>
        </ItemTemplate>


如果您是由于数据绑定而进行着色,您可能会更好地处理
ItemDataBound
事件,而不是
itemscreated

您好,如何从ItemDataBound事件访问当前行?在ItemCreated中,我执行以下操作:HtmlTableCell myTC=(HtmlTableCell)e.Item.FindControl(“tdCell”);无论我的解决方案如何,将代码放入ItemDataBound都能更好地工作。谢谢
            <ItemTemplate>
            <tr id="trRow" runat="server" style="">
                <td>
                    <asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>' />
                </td>
                <td>
                    <asp:Label ID="DateTime_StartLabel" runat="server" 
                        Text='<%# Eval("DateTime_Start") %>' />
                </td>
                <td>
                    <asp:Label ID="DateTime_EndLabel" runat="server" 
                        Text='<%# Eval("DateTime_End") %>' />
                </td>
                <td>
                    <asp:Label ID="TestCaseNameLabel" runat="server" 
                        Text='<%# Eval("TestCaseName") %>' />
                </td>
                <td>
                    <asp:Label ID="ModelNameLabel" runat="server" Text='<%# Eval("ModelName") %>' />
                </td>
                <td id="tdCell" runat="server">
                    <asp:Label ID="ResultLabel1" runat="server" 
                        Text='<%# Eval("Result") %>' />
                </td>
            </tr>
        </ItemTemplate>