asp.net gridview动态添加HTML控件的取值

用后台程序在gridview中添加了一个html控件:Literalli1=newLiteral();li1.Text="<inputid='KSDate'type='t... 用后台程序在gridview中添加了一个html控件:
Literal li1 = new Literal();
li1.Text = "<input id='KSDate' type='text' readonly onClick='calendar();' style='width: 100px'/>";
myRow.Cells[2].Text = "";
myRow.Cells[2].Controls.Add(li1);
li1.Text = "<input id='KSDate' type='text' readonly onClick='calendar();' style='width: 100px'/>";
//myRow是gridview中的一行。
我的意思是点击了按钮后,该行转入类似于编辑状态,行内加入html文本框(HtmlInputText)。
现在想点击另一个按钮,把用户输入到该文本框的类容传回后台做处理。

string myStr=((HtmlInputText)myRow.Cells[2].Controls[0]).Value.ToString();
这样做发生错误,跟踪显示,myRow.Cells中的Controls数量为0,也就是没有控件。

请问高手,怎样才能读到这个HtmlInputText的值。
问题已经解决。三位朋友的说法都不是完确正确的。
hshots说的有一定道理,因为页面生存周期的问题,不能用FindControl()去找到这个控件了。这个控件被显示在网页端,动态添加上去,加上runat='server'其实没有任何效果,这个我已经试验过了。
但是这个HtmlInputText控件并没有消失,而是按普通HTML网页控件存在的,这个时候它成了表单的一部份,所以,应当使用Request.Form["KSDate"]方法来获取,也就是说,进行表单处理就可以了。

谢谢三位朋友了。没有满意答案,就投票给分吧。
展开
 我来答
hshots
2010-05-23
知道答主
回答量:16
采纳率:0%
帮助的人:7.1万
展开全部
这个是错误的,你去看一下页面的生命周期.你保存时候,那个 HtmlInputText是不存在的.你去google一下动态添加控件的文章.
或者你改变思路,gridview本身就有编辑模板的那种方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ran_wang_927
2010-05-21 · 超过47用户采纳过TA的回答
知道答主
回答量:239
采纳率:25%
帮助的人:71.6万
展开全部
foreach (gridviewRow in Literal .Rows)
{
((Button)Rows.FindControl("btnedit")).text
}

遍历循环gridview 得到他每一行的控件 就OK
想你那样做 他是获取不到 控件的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skyfukk
2010-05-21 · TA获得超过1187个赞
知道小有建树答主
回答量:966
采纳率:100%
帮助的人:631万
展开全部
Literal li1 = new Literal();
li1.Text = "<input id='KSDate' runat='server' type='text' readonly onClick='calendar();' style='width: 100px'/>";
myRow.Cells[2].Text = "";
myRow.Cells[2].Controls.Add(li1);
li1.Text = "<input id='KSDate' runat='server' type='text' readonly onClick='calendar();' style='width: 100px'/>";

你再试试
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式