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"]方法来获取,也就是说,进行表单处理就可以了。
谢谢三位朋友了。没有满意答案,就投票给分吧。 展开
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"]方法来获取,也就是说,进行表单处理就可以了。
谢谢三位朋友了。没有满意答案,就投票给分吧。 展开
3个回答
展开全部
这个是错误的,你去看一下页面的生命周期.你保存时候,那个 HtmlInputText是不存在的.你去google一下动态添加控件的文章.
或者你改变思路,gridview本身就有编辑模板的那种方式
或者你改变思路,gridview本身就有编辑模板的那种方式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
foreach (gridviewRow in Literal .Rows)
{
((Button)Rows.FindControl("btnedit")).text
}
遍历循环gridview 得到他每一行的控件 就OK
想你那样做 他是获取不到 控件的
{
((Button)Rows.FindControl("btnedit")).text
}
遍历循环gridview 得到他每一行的控件 就OK
想你那样做 他是获取不到 控件的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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'/>";
你再试试
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'/>";
你再试试
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询