【问题标题】:Disable linkbuttons when table field= x?当表字段 = x 时禁用链接按钮?
【发布时间】:2011-05-17 22:07:01
【问题描述】:

我在购物车视图页面上有产品面板,用户可以单击每个产品上的编辑链接按钮来编辑产品详细信息,但业务规则要求一旦绑定购物车,这意味着提交的状态字段该提交的表格从“新”更新为“绑定”,用户不能再编辑他们的产品。我一直在尝试几种不同的方法来禁用链接按钮(switchcase、if then 等),但无济于事。有没有一种简单的方法可以将条件传递到链接按钮代码中,使它们的可见性/启用属性以该表字段为条件?代码如下:

当我运行此块时,链接按钮仍然可见(如果我将其设置为 .visible=false)和/或启用。 ??

string product = "SELECT ProductId FROM SubmissionProducts WHERE SubmissionId =" + x;
    using (SqlConnection editConn = new SqlConnection(connectionString))
    {
        editConn.Open();
        using (SqlCommand comntCmd = new SqlCommand(comnt, editConn))
        {
            SqlDataReader dr = comntCmd.ExecuteReader();
            dr.Read();
            var c = dr.GetInt32(0);
            if (c > 0)
            {
                PanelQuote.Visible = false;
                using (SqlCommand prodcmd = new SqlCommand(product, editConn))
                {
                    SqlDataReader drpan = prodcmd.ExecuteReader();
                    while (dr.Read())
                        switch (drpan.GetInt32(0))
                        {
                            case 1:
                                LnbEpl.Enabled = false;
                                break;
                            case 2:
                                LnbFid.Enabled = false;
                                break;
                            case 3:
                                LnbCrim.Enabled = false;
                                break;
                            case 4:
                                LnbPub.Enabled = false;
                                break;
                            case 5:
                                LnbPriv.Enabled = false;
                                break;
                            case 6:
                                LnbNot.Enabled = false;
                                break;
                            case 7:
                                LnbEo.Enabled = false;
                                break;
                            default:
                                break;
                        }
                }

            }
            else
                PanelComment.Visible = false;
        }

【问题讨论】:

    标签: c# asp.net sql-server visual-studio


    【解决方案1】:

    这可行,我更改了几件事,删除 whiles 并创建新连接,因为您提供的代码将抛出此异常 "There is already an open DataReader associated with this Command which must be closed first."

    SqlConnection editConn1 = new SqlConnection(connectionString);
    SqlConnection editConn2 = new SqlConnection(connectionString);
    editConn1.Open();
    editConn2.Open();
    
    SqlCommand comntCmd = new SqlCommand(comnt, editConn1);
    SqlDataReader dr = comntCmd.ExecuteReader();
    dr.Read();
    var c = dr.GetInt32(0);
    if (c > 0)
    {
        PanelQuote.Visible = false;
        SqlCommand prodcmd = new SqlCommand(product, editConn2);
        SqlDataReader drpan = prodcmd.ExecuteReader();
        drpan.Read();
        var d = drpan.GetInt32(0);
        switch (d)
        {
            case 1:
                LnbEpl.Enabled = false;
                break;
            case 2:
                LnbFid.Enabled = false;
                break;
            case 3:
                LnbCrim.Enabled = false;
                break;
            case 4:
                LnbPub.Enabled = false;
                break;
            case 5:
                LnbPriv.Enabled = false;
                break;
            case 6:
                LnbNot.Enabled = false;
                break;
            case 7:
                LnbEo.Enabled = false;
                break;
            default:
                break;
        }
    }
    else
    {
        PanelComment.Visible = false;
    }
    

    【讨论】:

      猜你喜欢
      • 2018-02-08
      • 2021-05-11
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      相关资源
      最近更新 更多