向启用文本框 (C#) 的 Web 部件添加一个按钮,并收到错误:无法将类型“bool”隐式转换为“字符串”

本文关键字:字符串 错误 类型 bool 转换 Web 启用 文本 按钮 一个 添加 | 更新日期: 2023-09-27 18:32:42

我已经在 webpart 中添加了一个按钮 - 我希望该功能能够启用它旁边的禁用文本框。 在部署时,我收到错误:无法将类型"bool"隐式转换为"字符串"

当我转换为字符串以尝试克服该问题(JDHFBtn.OnClientClick = Convert.ToString(JDHFTxt.Enabled = true);)时,它使文本框始终可编辑。 我正在寻找解决问题。请原谅我的无知 - 我是 C# 和 Web 部件的新手,在编程方面没有多少高级。 谢谢。

这是有问题的代码:

    sb.Append("</td>");
    sb.Append("         </tr>");
    sb.Append("         <tr class='"row2'">");
    sb.Append("             <td class='"rowTextLeft'" width='"25%'">SPR/JDHF Allotment:</td>");
    sb.Append("             <td class = '"rowText'" td width='"75%'">"); 
                                lc3 = new LiteralControl(sb.ToString());
                                Controls.Add(lc3); 
                                TextBox JDHFTxt = new TextBox(); 
                                JDHFTxt .ID = "txtJDHF"; 
                                JDHFTxt .Enabled = false;
                                JDHFTxt .Width = 100;
                                JDHFTxt .Text = ConvertToFunding(DrACE["SPRAllotment"].ToString()); 
                                Controls.Add(JDHFTxt); 
                                sb = new StringBuilder();
                                lc7 = new LiteralControl();
                                Controls.Add(lc7);
                                Button JDHFBtn = new Button();
                                JDHFBtn.ID = "btnJDHF";
                                JDHFBtn.CssClass = "plainButton";
                                JDHFBtn.Text = "Edit";
                                //JDHFBtn.OnClientClick = JDHFTxt.Enabled = true;
                                //JDHFBtn.Attributes.Add("OnClick, JDHFTxt.Enabled = true);
                                JDHFBtn.OnClientClick = Convert.ToString(JDHFTxt.Enabled = true);
                                Controls.Add(JDHFBtn);
                                sb = new StringBuilder();
sb.Append("</td>");
sb.Append("         </tr>");

向启用文本框 (C#) 的 Web 部件添加一个按钮,并收到错误:无法将类型“bool”隐式转换为“字符串”

这是因为您将值true分配给文本框而不是比较。将代码更改为Convert.ToString(JDHFTxt.Enabled);

编辑阅读您的评论后,这就是您想要的:

JDHFBtn.OnClientClick = 
      "document.getElementById('" + JDHFTxt.ClientID + "').disabled = false;" +
      "return false;";