如何在单击时禁用gridview中的链接按钮

时间:2014-09-19 05:01:44

标签: c# asp.net gridview

我的LinkButton's中有两个GridView被称为批准和拒绝,我希望我的批准LinkButton在点击它时为Disabled。我尝试了以下代码,但它没有用。

protected void gvManagerTimeSheet_RowCommand(object sender, GridViewCommandEventArgs e)   
{
        if (e.CommandName == "ApproveRow")
        {
            GridViewRow row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
            LinkButton lnkbtn = (LinkButton)row.FindControl("lbApprove");
            lnkbtn.Enabled = false;

            int rowIndex = ((GridViewRow)((LinkButton)e.CommandSource).NamingContainer).RowIndex;
            int TimeSheetId = Convert.ToInt32(e.CommandArgument);

            string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;

            using (SqlConnection con = new SqlConnection(CS))
            {
                SqlCommand cmd = new SqlCommand("spApproveTimeSheet ", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@TimeSheetId", TimeSheetId);

                con.Open();
                cmd.ExecuteNonQuery();

                GetManagerTimeSheets();
            }
         }

}

3 个答案:

答案 0 :(得分:0)

您需要使用禁用控件重新绑定网格,但您还需要检查itembound事件中的状态并禁用。为此,您可以使用会话或隐藏字段。

protected void rg_OnItemCommand(object source, GridCommandEventArgs e)
{
   // your logic 
   hdFlag.value = "val" // id of the data item to hide if more than one use array
  // rebind logic for gird
}

protected void rg_ItemDataBound(object sender, GridItemEventArgs e)
{
  if(hdFlag.value == "id")
  {
    // Find the control and hide 
  }
}

答案 1 :(得分:0)

嗯,你没有显示你的aspx链接按钮所以我假设你的链接按钮是这个

<asp:LinkButton id="linkBtn" runat="server" text="Approve"  OnClientClick="Disable(this);"/>

现在你应该在页面::

上添加这样的javascript函数
<script>
function Disable(link)
{
link.disabled = result;
}
</script>
  

现在,当您点击页面时,您的按钮将被禁用。

答案 2 :(得分:0)

试试这个

 LinkButton lbApprove = (LinkButton)e.Row.Cells[0].Controls[0];