向启用文本框(C#)的Web部件添加一个按钮,得到一个错误:无法隐式转换类型';布尔';至';字符串';
我在webpart中添加了一个按钮-我希望该功能能够启用它旁边的禁用文本框。在部署时,我收到一个错误:无法将类型“bool”隐式转换为“string” 当我转换为字符串以尝试解决此问题时(向启用文本框(C#)的Web部件添加一个按钮,得到一个错误:无法隐式转换类型';布尔';至';字符串';,c#,string,visual-studio-2010,boolean,web-parts,C#,String,Visual Studio 2010,Boolean,Web Parts,我在webpart中添加了一个按钮-我希望该功能能够启用它旁边的禁用文本框。在部署时,我收到一个错误:无法将类型“bool”隐式转换为“string” 当我转换为字符串以尝试解决此问题时(JDHFBtn.OnClientClick=convert.ToString(jdhftt.Enabled=true);),它会使文本框始终可编辑。我希望解决这个问题。请原谅我的无知——我对C#和web部件不熟悉,编程也不太先进。多谢各位 以下是相关代码: sb.Append("</td>"
JDHFBtn.OnClientClick=convert.ToString(jdhftt.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>");
sb.追加(“”);
某人加上(“”);
某人加上(“”);
sb.追加(“SPR/JDHF分配:”);
某人加上(“”);
lc3=新的文字控件(sb.ToString());
添加控件(lc3);
TextBox JDHFTxt=新建TextBox();
JDHFTxt.ID=“txtJDHF”;
JDHFTxt.Enabled=false;
JDHFTxt.Width=100;
JDHFTxt.Text=convertFound(DrACE[“SPRAllotment”].ToString());
添加控件(JDHFTxt);
sb=新的StringBuilder();
lc7=新的LiteralControl();
添加控件(lc7);
按钮JDHFBtn=新按钮();
JDHFBtn.ID=“btnJDHF”;
JDHFBtn.CssClass=“plainButton”;
JDHFBtn.Text=“编辑”;
//JDHFBtn.OnClientClick=JDHFTxt.Enabled=true;
//JDHFBtn.Attributes.Add(“OnClick,JDHFTxt.Enabled=true);
JDHFBtn.OnClientClick=Convert.ToString(JDHFTxt.Enabled=true);
控件。添加(JDHFBtn);
sb=新的StringBuilder();
某人加上(“”);
某人加上(“”);
这是因为您正在将值true
分配给未进行比较的文本框。请将代码更改为Convert.ToString(jdhftt.Enabled);
编辑
阅读您的评论后,这就是您想要的:JDHFBtn.OnClientClick =
"document.getElementById('" + JDHFTxt.ClientID + "').disabled = false;" +
"return false;";
感谢您的快速响应。我实现了您所说的代码(我想),但问题仍然是一样的。这就是我实现的-我是否正确地遵循了您的意图?
JDHFBtn.OnClientClick=Convert.ToString(JDHFTxt.Enabled);
Ah,请忽略这一点-我进行了缓存刷新(ctrl+F5)现在,该框仍处于禁用状态。当我现在用代码单击按钮时,网站将刷新,文本框仍处于禁用状态。单击按钮时,您希望发生什么情况?当前,JDHFTxt文本框设置为禁用。如果用户单击按钮,我希望文本框处于启用状态,以便他们可以更改值o输入一个。那么你完全错了,你需要一些javascript来处理这个问题。请参阅我的更新答案。