[英]Why is e.Row.DataItem null in RowCreated function of GridView
GridView的部分HTML源(ID: MyGrid
):
...
<tr title="Task is Past Due" style="color:#C00000;background-color:#EBE9E9;">
<td>
<input type="image" name="ctl00$ContentMain$yourTasksGV$ctl04$btnShowDepend" id="btnShowDepend" title="Click to view Dependencies" class="gvTaskDep btnShowDepend" src="es.png" alt="" />
<div id="pnlSubTasks" class="pnlSubTasks">
<div>
</div>
</div>
</td>
<td style="background-color:DarkRed;">
</td>
<td class="taskTableColumn">SOMETHING</td>
<td class="taskTableColumn">Something</td>
<td class="taskTableColumn">Something</td>
<td class="taskTableColumn">03-09-2015</td> //<asp:BoundField HeaderStyle-Width="7%" DataField="Due Date" HeaderText="Due" SortExpression="Due Date" ItemStyle-CssClass="taskTableColumn" />
<td class="taskTableColumn">Something</td>
<td class="taskTableColumn">Something</td>
<td class="taskTableColumn">Something</td>
<td class="taskTableColumn">Something</td>
<td class="taskTableColumn"> </td>
<td class="taskTableColumn"></td>
<td class="hideTag">1</td>
<td class="hideTag">155</td>
</tr>
...
當我單擊btnShowDepend
圖像以執行某些操作時,它在GridView RowCreated
函數中失敗:
if (e.Row.RowType == DataControlRowType.DataRow)
{
var k = DataBinder.Eval(e.Row.DataItem, "Due Date"); //k=null
DateTime dt;
DateTime.TryParse(DataBinder.Eval(e.Row.DataItem, "Due Date").ToString(), out dt); //e.Row.DataItem = null
if (dt < DateTime.Today)
{
//or do it for a specific cell
e.Row.Cells[1].BackColor = System.Drawing.Color.DarkRed;
}
}
為什么k
null,以及如何修改代碼以修復它。
請注意:如果也可以使用JQuery完成,那么我希望該解決方案。
我想在列的Due Date
小於今天的日期的任何行中將字體顏色設為紅色。
我不是ASP.net專家,但是使用jQuery可以使用Date.parse
如下所示:
$('#btnShowDepend').on('click', function () {
var now = Date.now();
$('td.taskTableColumn').each(function () {
var date = Date.parse($(this).text());
// Skip invalid dates
if (isNaN(date)) return;
if (date < now) {
$(this).css({
backgroundColor: 'red'
});
}
});
});
要遍歷整個表,如果每行的“第六列”包含的日期早於今天,則將其變為紅色,您可以這樣做:
$('#btnShowDepend').on('click', function () {
var now = Date.now();
$('#myTableId tr').each(function () {
var $row = $(this);
var the6thColumn = $row.find('.my6thColumnClass');
var date = Date.parse($(the6thColumn).text());
// Skip invalid dates
if (isNaN(date)) return;
if (date < now) {
$row.css({
backgroundColor: 'red'
});
}
});
});
假設:
myTableId
my6thColumnClass
的類, my6thColumnClass
所示: <td class="my6thColumnClass">
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.