我有一个 gridview,它有来自 SQL 数据库的数据。数据库包含一组需要处理的作业。在我的最后一个专栏中,它说它是否已完成。如果完成,它将显示完成时间的日期时间,但如果没有完成,则数据库包含此单元格的 0,并且需要一个可以使其完成的按钮,当它完成时。
因此代码首先从数据库中检索数据,然后我想使用 RowDataBound 检查我是否需要显示一个按钮,而不是来自数据库的文本。我还需要这个按钮的事件,所以我可以在完成后使用 dateTime 更新数据库。
这是我的gridview的代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="OverviewPlannedJobs" DataKeyNames="ID"
onrowcommand="Gridview1_RowCommand" onrowdatabound="GridView1_RowDataBound"
Width="631px">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID"
InsertVisible="False" ReadOnly="True">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField DataField="week" HeaderText="Uke" SortExpression="week">
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField DataField="dayNumb" HeaderText="Dag"
SortExpression="dayNumb">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField DataField="oven" HeaderText="Ovn"
SortExpression="oven">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField DataField="section" HeaderText="Seksjon"
SortExpression="section">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField DataField="pit" HeaderText="Pit" SortExpression="pit">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField DataField="job" HeaderText="Jobb"
SortExpression="job">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField DataField="priority" HeaderText="Prioritet"
SortExpression="priority">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:BoundField>
<asp:BoundField DataField="timeEdited" HeaderText="Lagt til eller endret"
SortExpression="timeEdited" >
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:BoundField>
<asp:ButtonField ButtonType="Button" CommandName="editts" HeaderText="Valg"
Text="Rediger">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:ButtonField>
<asp:ButtonField ButtonType="Button" CommandName="delete" Text="Slett">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:ButtonField>
<asp:TemplateField HeaderText="Fullført?" SortExpression="finished">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("finished") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
然后我在后面的代码中有这个rowdatabound函数:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//Make button where finished equals zero
if (e.Row.Cells[11].Text.Equals("0"))
{
//insert button
}
}