2
回答
asp.net在用户自定义控件中利用findcontrol寻找控件的问题
终于搞明白,存储TCO原来是这样算的>>>   

问题如下:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="htmlUserControl.ascx.cs" Inherits="download.htmlUserControl" %>
<input id="Text1" type="text" runat="server"/>
<input id="Button1" type="button"value="button" runat="server"/>

那是我定义的一个用户自定义控件,然后我在另一个web窗体中引用它:

<uc1:mycontrol ID="mycontrol2" runat="server" />

然后我在后台代码中想通过

TextBox text1 = (TextBox)mycontrol2.FindControl("Text1");

text1.Text = "html服务器控件";

找到它,结果提示

未将对象引用设置到对象的实例。

行 24:                 TextBox text1 = (TextBox)mycontrol1.FindControl("Text1");
行 25:                 text1.Text = "html服务器控件";
行 26:                
行 27:             }

请问有什么方法能够引用自定义控件中的html服务器控件呢,我测试把自定义控件中的html服务器控件改为asp.net服务器控件后是可以达到目的的,关键是html服务器控件就不行,求指教阿~

thanks!!

举报
无名人士
发帖于6年前 2回/1K+阅
共有2个答案 最后回答: 6年前
<input id="Button1" type="button"value="button" runat="server"/>中的value和它前面的引号得隔开,不然会有设计器文件生成失败 服务器标记的格式不正确的警告,希望有牛人能指点迷津哈

各位,本人学习不谨慎,现下自己已找到问题所在,正确使用方法如下:

HtmlInputText text1 = (HtmlInputText)(htmlUserControl1.FindControl("Text1"));

text1.Value = "html服务器控件";

我的错误代码中myusercontrol1用的是另一个控件,而不是我想测试的,

另外找到控件后强制转换类型也错了,应该是HtmlInputText类才对,

OK了

顶部