Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用c#asp.net绑定到Gridview之前获取值_C#_Asp.net_Gridview_Asplinkbutton - Fatal编程技术网

如何在使用c#asp.net绑定到Gridview之前获取值

如何在使用c#asp.net绑定到Gridview之前获取值,c#,asp.net,gridview,asplinkbutton,C#,Asp.net,Gridview,Asplinkbutton,我正在从数据库中检索一些数据,并将使用c#asp.net在网格视图中绑定。首先,我想解释我的代码,然后我将解释我的要求 index.aspx: 我正在从数据库中获取Health\u Comment\u Status字段值。在绑定到gridview之前,如果Health\u Comment\u Status值将为R,gridview中的拒绝链接按钮颜色将为红色,反之,同一网格视图中的接受链接按钮颜色将为红色绿色。同样,在链接按钮的每个点击事件中,我想检查链接按钮的背面颜色,以便更新数据库中的状态。

我正在从数据库中检索一些数据,并将使用c#asp.net在网格视图中绑定。首先,我想解释我的代码,然后我将解释我的要求

index.aspx:


我正在从数据库中获取
Health\u Comment\u Status
字段值。在绑定到gridview之前,如果
Health\u Comment\u Status
值将为
R
,gridview中的拒绝链接按钮颜色将为红色,反之,同一网格视图中的接受链接按钮颜色将为红色绿色。同样,在链接按钮的每个点击事件中,我想检查链接按钮的背面颜色,以便更新数据库中的状态。请帮助我

现在事情对我来说有点清楚了。我把答案分成两部分。在第一部分中,我将解释如何更改背景颜色,在第二部分中,我将解释如何从链接(或按钮)访问OnClick事件中的状态值

更改背景色:

要更改GridView控件中“Reject”链接的背景色,可以挂接RowDataBound事件。下面是一个代码示例:

protected void EmployeeAvailabilityGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    try
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {                  
            if(DataBinder.Eval(e.Row.DataItem, "Health_Comment_Status") == "R")
            {
                e.Row.Cell[2].BackColor = System.Drawing.Color.Red;
            }
        }
    }
    catch (Exception ex)
    {
        //ErrorLabel.Text = ex.Message;
    }
}
请注意,您需要更改索引以表示正确的单元格。如果要根据列名获取正确的单元格,可以执行以下操作:

您还可以通过替换此行来更改整行的背景色:

e.Row.Cell[2].BackColor = System.Drawing.Color.Red;
e.Row.BackColor = System.Drawing.Color.Red;
这一行:

e.Row.Cell[2].BackColor = System.Drawing.Color.Red;
e.Row.BackColor = System.Drawing.Color.Red;
在OnClick事件中访问行信息:

将健康注释状态值添加到Accept链接的commandargument属性。首先更新链接,如下所示:

<asp:LinkButton ID="accept" CssClass="btn btn-xs btn-inactive" CommandName="Accept" runat="server" style="padding:1px 2px;" Text="Accept" onclick="accept_click" CommandArgument='<%#Eval("Health_Comment_ID")%>|<%#Eval("Health_Comment_Status")%>'></asp:LinkButton>

其次,将OnClick eventhandler更改为如下内容:

protected void linkButton_click(object sender, EventArgs e)
{
    LinkButton btn = (LinkButton)sender;
    string[] commandArgs = btn.CommandArgument.Split('|')

    if(commandArgs.Length <= 1 then
        return;

    string healthCommentStatus = commandArgs[1];
}
受保护的无效链接按钮\u单击(对象发送者,事件参数e)
{
LinkButton btn=(LinkButton)发送方;
字符串[]commandArgs=btn.CommandArgument.Split(“|”)

if(commandArgs.Length@Maurits:Ok,让我再解释一下。我的数据库中有一个字段名
Health\u Comment\u Status
,通过方法调用
objhealthCommentBL.getHealthCommentDetails()进行检索
以及其他数据。我需要当此字段的值为
R
时,拒绝链接按钮将在Gridview中显示红色,同样,当用户单击拒绝按钮时,状态将为检查。@Maurits:好的,你的回答帮助了我。你能帮我解答其他疑问吗。现在我的拒绝按钮是红色的。如果我单击接受链接按钮t,我需要他应该在onclick事件中再次检查状态。@毛里塔尼亚:你可以在我的帖子中检查gridview的单元格。第一个单元格中没有类似的状态。@satya很抱歉,我确实应该检查。我已经更新了我的答案来解决这个问题。希望这能有所帮助。