好的......我有一个名为employees的数据库表..
这个列有ID,Name,datejoined和Cannotbedeleted(复选框)......
现在我想添加一个删除列,在单击时删除行。
但是如果Cannotbedeleted字段为true(已选中),则有些条目无法删除...因此删除按钮对于这些行应该是不可见的。
请告诉我如何做到这一点......
<asp:CheckBoxField DataField="CannotBeDeleted" HeaderText="CannotBeDeleted"
SortExpression="CannotBeDeleted" />
<asp:BoundField DataField="TimeAdded" HeaderText="TimeAdded"
SortExpression="TimeAdded" />
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="Delete" Text="Delete" ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我也试过在删除模板字段中使用... '&gt;
但是我不知道在代码背后做了什么? protected bool GetShowDeleteButton() {
}
解决方案如下....但是有一种方法可以在我点击gridview中的删除按钮后刷新页面....
答案 0 :(得分:2)
尝试循环遍历GridView_DataBound中的行,并隐藏已选中复选框的每一行的按钮。
protected void GridView1_DataBound(object sender, EventArgs e)
{
foreach(GridViewRow myRow in GridView1.Rows)
{
//Find the checkbox
CheckBox ckbox1 = (CheckBox)myRow.FindControl("nameOfCheckBox");
if(ckbox1.Checked)
{
//Find the Delete linkbutton and hide it
LinkButton deleteButton = (LinkButton)myRow.FindControl("nameOfDeleteLinkButton");
deleteButton.Visible = false;
}
}
}
现在,这就是你需要的差异:
将CheckBox列实现为TemplateField,其中包含CheckBox。您可以将CheckBox绑定到数据源中的数据。
答案 1 :(得分:-1)
这样做:
if($row['cannotbedeleted'] == true) {
$buttonDisplay = 'none';
}
echo "<button onclick='delete();' style='display: $buttonDisplay;'>Delete</button>";
那么这将是PHP的解决方案,但如果按钮的样式有“display:none;”在其中按钮将被隐藏。 :) HTH