我的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();
}
}
}
答案 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];