向启用文本框 (C#) 的 Web 部件添加按钮,出现错误:无法将类型“bool”隐式转换为“字符串”
Posted
技术标签:
【中文标题】向启用文本框 (C#) 的 Web 部件添加按钮,出现错误:无法将类型“bool”隐式转换为“字符串”【英文标题】:Add a button to a webpart that enables a text box (C#), getting an error: Cannot implicitly convert type 'bool' to 'string' 【发布时间】:2013-09-30 01:14:57 【问题描述】:我已经向 webpart 添加了一个按钮 - 我想要启用它旁边的禁用文本框的功能。在部署时,我收到一个错误:无法将类型 'bool' 隐式转换为 'string'
当我转换为字符串以尝试解决问题 (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>");
【问题讨论】:
【参考方案1】:那是因为您将值 true
分配给文本框而不是比较。把代码改成Convert.ToString(JDHFTxt.Enabled);
编辑 阅读您的 cmets 后,这就是您想要的:
JDHFBtn.OnClientClick =
"document.getElementById('" + JDHFTxt.ClientID + "').disabled = false;" +
"return false;";
【讨论】:
感谢您的快速回复。我按照您所说的(我认为)实现了代码,但问题仍然存在。这就是我实施的 - 我是否正确地遵循了您的意图?JDHFBtn.OnClientClick = Convert.ToString(JDHFTxt.Enabled);
啊,请忽略 - 我做了缓存刷新(ctrl + F5),现在该框仍然禁用。但是,当我现在单击带有代码的按钮时,站点会刷新并且文本框仍然处于禁用状态。
当您点击按钮时您希望发生什么?
当前 JDHFTxt 文本框设置为禁用。如果用户单击按钮,我希望启用文本框,以便他们可以更改值或输入值。
那你完全错了,你需要一些javascript来处理它。请参阅我的更新答案。以上是关于向启用文本框 (C#) 的 Web 部件添加按钮,出现错误:无法将类型“bool”隐式转换为“字符串”的主要内容,如果未能解决你的问题,请参考以下文章
如果用户需要向现有选项添加新选项,如何在访问中创建一个组合框,该组合框可以转换为文本框以启用书写?
带有按钮、组合框和文本框的 C# WinForms (.NET Framework) DataGridView:使用按钮添加新行以添加组合框项时出错
如何向java jframe中添加下拉列表 按钮 文本框 最后把信息存储在文件里