【问题标题】:How to show checkboxes to user that are saved as yes in database at frontend?如何向用户显示在前端数据库中保存为“是”的复选框?
【发布时间】:2020-05-12 13:21:30
【问题描述】:

这是我的动态网格。它正在针对每个复选框保存客户描述。也就是说,如果我将复选框标记为“个人”,那么它将 Y 保存在我的数据库中,否则将 N。所以现在我只想在数据库中保存 Y 的复选框上显示勾选。下面是我的动态网格的代码:

  public string getCustomerStateGrid()
    {
        string html = ""; int Count = 1;



        DataTable dt = getDataTableFromQuery(@"select Id,cuscheckbox,CustomerDescription from CustomerState3");
        html = "<h2>    Customer State </h2><br/><table class=\"display unbreakable\" id=\"tblCustomerDetail\" style=\"width:100%; border-collapse: collapse;\"><thead>";

        #region Header

        html += "<tr><th height='40' class=\"Greyheader\" style=\"width:5%\">S.No</th>";
        html += "<th height='40' class=\"Greyheader\" style=\"width:30%\">Customer Status</th>";

        html += "<th height='40' class=\"Greyheader\" style=\"width:15%\">Customer Description</th>";

        //html += "<th class=\"Greyheader\" style=\"width:12%\">Action</th>";
        html += "</tr></thead>";

        #endregion

        #region Body
        html += "<tbody>";
        if (dt.Rows.Count > 0)
        {
            foreach (DataRow dr in dt.Rows)
            {

                html += "<tr class=\"GreyBorder\" id='tblCustomerDetail_" + dr["Id"].ToString() + "' pkid=\"" + dr["Id"].ToString() + "\"  class=\"DataRow\">";
                html += "<td class=\"GreyBorder\" style=\"text-align:center !important;\">" + Count + "</td>";


                html += "<td class=\"GreyBorder\"><input  id='txtcuscheckbox_" + dr["Id"].ToString() + "' type=\"checkbox\" style=\" text-align: right; width:95;\" value='" + dr["cuscheckbox"].ToString() + "' class=\"mediumTextField Customer Status\" /></td>";
              html += "<td class=\"GreyBorder\"><input  id='txtCustomerDescription_" + dr["Id"].ToString() + "' type=\"textbox\" style=\" text-align: right; width:95;\" value='" + dr["CustomerDescription"].ToString() + "' class=\"mediumTextField Customer Description\" /></td>";


                html += "</tr>";
                Count++;


            }
        }
        else
        {


            html += "<tr class=\"GreyBorder\" ><td style=\"text-align:center !important;\" class=\"GreyBorder\"  colspan='6'>No Data.</td></tr>";

            html += "</tr>";
        }

        html += "</tbody>";

        #endregion

        html += "<tfoot><tr class='GreyBorder'>";

        html += "<td class='GreyBorder' colspan='2'></td> ";
        html += "</tr></tfoot>";

        html += "</table><br/>";


        return html.ToString();

    }

我只是想自定义这行代码

           html += "<td class=\"GreyBorder\"><input  
      id='txtcuscheckbox_" + dr["Id"].ToString() + "' 
       type=\"checkbox\" 
      style=\" text-align: right; width:95;\" value='" + d 
      dr["cuscheckbox"].ToString() + "' class=\"mediumTextField 
      Customer Status\" /></td>";

以便它在复选框上显示打勾。任何人都可以修改我的代码来实现这个结果吗?我们有什么办法可以使用三元运算符吗?

【问题讨论】:

  • 你在使用 ASP.NET 吗?
  • 是的,我正在使用 asp.net
  • 你在使用 MVC 吗?

标签: c# html checkbox


【解决方案1】:

本质上你需要:

var isChecked = 'Y';
html += isChecked == 'Y' ? "<input type=\"checkbox\" checked>" : "<input type=\"checkbox\">";

但是,您将前端与后端逻辑混合在一起。创建一个将数据返回到前端并让前端生成 HTML 的 JSON 端点不是更好吗?

编辑:

要修改当前逻辑,您可以将创建文本框的行替换为以下内容:

var isChecked = dr["cuscheckbox"].ToString().ToUpper() == "Y" ? "checked" : string.Empty;
html += $"<td class=\"GreyBorder\"><input  id='txtcuscheckbox_{dr["Id"].ToString()}' type=\"checkbox\" style=\" text-align: right; width:95;\" class=\"mediumTextField Customer Status\" {isChecked}/></td>";

【讨论】:

  • 我添加了这两行代码,但它仍然显示我所有的复选框都是空的。
  • 我是新手,所以我真的不知道我们是否可以通过 json 来做到这一点。但是我需要修改自己的代码才能达到我的效果。
  • 那是因为我举了一个例子,而不是修改你的代码。第 1 步是更改您的查询以实际返回值(Y 或 N),第 2 步是修改创建复选框的行以使用与我发布的类似逻辑。
  • 你能修改我的代码吗?因为我仍然很困惑
  • 检查 HTML,生成了什么?调试代码,foreach里面的dr["cuscheckbox"]的值是多少?
猜你喜欢
  • 1970-01-01
  • 2018-09-01
  • 2019-12-19
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
  • 2016-09-10
相关资源
最近更新 更多