[英]Showing and hiding of gridview button based on the value of a cell in the same row
我的ASP.NET中有一個gridview。 在我的gridview列中,我希望每行上的按鈕顯示或隱藏一個單元格的值是相同的單元格為空還是null。 例如,我希望按鈕顯示在Signout_Time為null或為空的每一行上。 我已經寫了下面的代碼。 我遇到的問題是代碼以相反的方式工作。 在具有“ Signout_Time”的行上顯示按鈕,而在沒有“ Signout_Time”可見性的值的行上的按鈕變為false。 事實並非如此。 我也曾嘗試更改我的if條件,但還是沒有用
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) {
switch (e.Row.RowType) {
case DataControlRowType.DataRow:
DataRowView myDataRowView = (DataRowView)e.Row.DataItem;
if (String.IsNullOrEmpty(myDataRowView["Signout_Time"].ToString())) {
Button status = (Button)e.Row.FindControl("out");
if (status != null) {
status.Visible = true;
}
}
break
}
}
<Columns>
<asp:BoundField HeaderText="S/N" DataField="SN" />
<asp:BoundField HeaderText="First Name" DataField="FirstName" />
<asp:BoundField HeaderText="Address" DataField="Address" />
<asp:BoundField HeaderText="Phone Number" DataField="PhoneNumber" />
<asp:BoundField HeaderText="Sex" DataField="Sex" />
<asp:BoundField HeaderText="Reason" DataField="Reason" />
<asp:BoundField HeaderText="SignIn" DataField="SignIn_Time" />
<asp:BoundField HeaderText="SignOut" DataField="Signout_Time" />
<asp:TemplateField HeaderText="Action" Visible="True">
<ItemTemplate>
<asp:Button ID="out" runat="server" Text="Sign out" CommandName="SignOut" CommandArgument='<%#Eval("SN") %>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerSettings FirstPageText="First" LastPageText="Last" Mode="NumericFirstLast" PageButtonCount="5" />
</asp:GridView>
您可以直接在GridView模板中設置“可見性”按鈕:
<asp:Button Visible='<%# string.IsNullOrEmpty(Eval("Signout_Time").ToString()) %>' runat="server" Text="Sign out" ID="out" CommandName="SignOut" CommandArgument='<%#Eval("SN") %>'/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.