我想根据条件在 gridview 的某些行上启用或禁用链接按钮。我可以在一行上启用 linkbutton 并在同一网格视图的另一行上禁用它吗?我的代码在这里
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{LinkButton lnk2 = (LinkButton)e.Row.FindControl("LinkButton2");
if (e.Row.RowType == DataControlRowType.DataRow)
{
SqlCommand cmd12 = new SqlCommand("Select testsession_status from student_vs_testsession_details where testsession_id='" + v_testid.Text + "' ", con12);
SqlDataReader dr12 = cmd12.ExecuteReader();
while (dr12.Read())
{
string test_status = dr12[0].ToString();
LinkButton lnk2 = (LinkButton)e.Row.FindControl("LinkButton2");
foreach (GridViewRow row in GridView1.Rows)
{
if (v_testtype == "Theory Test" && test_status == "Completed")
{
lnk2.Visible = true;
}
else
{
lnk2.Visible = false;
}
}
}
是的,你可以在 RowdataBound 事件中轻松做到这一点,但是你已经使用过lnk2.Visible
您的代码中的属性。
你可能正在使用Visible
属性满足另一个要求,但只是想确认您它仅用于显示/隐藏链接按钮。要启用/禁用链接按钮,请使用Enabled
链接按钮的属性。作为:
lnk2.Enabled = true;// to enable linkbutton.
lnk2.Enabled = false;// to disable linkbutton.
如果你想使用 rowindex 来做到这一点,那么你可以e.Row.RowIndex
在 gridview 的 'RowDatabound` 事件中查找当前行索引。作为:
if(e.Row.RowIndex==2)
{
LinkButton lnk2 = (LinkButton)e.Row.FindControl("LinkButton2");
lnk2.Enabled=false;
}
如果您想根据同一行中其他列的值启用/禁用链接按钮,那么您可以在内部执行相同的操作Rowdatabound
事件。作为:
string Namecolumnvalue = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Name"));
LinkButton lnk2 = (LinkButton)e.Row.FindControl("LinkButton2");
if(Namecolumnvalue =="Disable")
{
lnk2.Enabled=false;
}
else{
lnk2.Enabled=true;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)