前台代码:
<asp:TemplateField HeaderText="检查日期">
<ItemTemplate>
<input id="time" type="text" runat="server" name="time" onfocus="WdatePicker()" style="width: 80px; text-align:center;" />
</ItemTemplate>
</asp:TemplateField>
我想在后台读到模板列html控件的值,用findcontrol(ID)没用!
急,谢谢各位大侠!
<asp:TemplateField HeaderText="检查日期">
<ItemTemplate>
<input id="time" type="text" runat="server" name="time" onfocus="WdatePicker()" style="width: 80px; text-align:center;" />
</ItemTemplate>
</asp:TemplateField>
我想在后台读到模板列html控件的值,用findcontrol(ID)没用!
急,谢谢各位大侠!
解决方案 »
- 接收URL中的汉字时乱码是什么原因?
- 关于数据库访问类做成静态的还是可实例化的好?
- 绑定DataList是出现了“未将对象引用设置到对象的实例。”这样的错误?
- vs2005和SQL2000支持AspNetPager 7.2 吗?
- 关于不重复登录的难题,请高手帮忙
- 数据邦定问题,请高手解答
- 做gis地图,知道坐标,能不能做个功能让焦点在gis地图里定位到该坐标呢
- 错误提示:there is no rows at position,是什么原因
- 如何將下列vbscript語句轉換成javascript語句?
- 用AspNetPager组件做伪静态分页时如何让首页不显示页码
- 在cs文件中如何引用控件的id?
- 在数据库中,这个要怎么显示
{
if (e.CommandName == "btn_save_Click")
{
int i = Convert.ToInt32(e.CommandArgument.ToString());//gv行号
string dev_num = gv_checkinfor.Rows[i].Cells[1].Text;
string t = Request.Form["time_" + i.ToString()];
}
}
t是空值
{
if (e.CommandName == "btn_save_Click")
{
int i = Convert.ToInt32(e.CommandArgument.ToString());//gv行号
string dev_num = gv_checkinfor.Rows[i].Cells[1].Text;
System.Web.UI.HtmlControls.HtmlInputText txt = (System.Web.UI.HtmlControls.HtmlInputText)gv_checkinfor.Rows[i].FindControl("time");
Response.Write(txt.Value);
}
}txt也是null
System.Web.UI.HtmlControls.HtmlInputText txt = (System.Web.UI.HtmlControls.HtmlInputText)GridView1.Rows[0].FindControl("name"); Response.Write(txt.Value.ToString());
下面提供了3种获取的方法
<%@ Page Language="C#" EnableViewState="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server"> protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("Name", typeof(System.String))); for (int i = 0; i < 8; i++)
{
System.Random rd = new System.Random(Environment.TickCount * i); ;
dr = dt.NewRow();
dr[0] = i;
dr[1] = "xxx" + i.ToString();
dt.Rows.Add(dr);
} GridView1.DataSource = dt;
GridView1.DataBind();
}
} protected void Button1_Click(object sender, EventArgs e)
{
foreach (GridViewRow v in GridView1.Rows)
{
HtmlInputText t = v.FindControl("time") as HtmlInputText;
Response.Write("<li>" + t.Value);
}
} protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "GetDate")
{ GridViewRow row = GridView1.Rows[Convert.ToInt32(e.CommandArgument)];
HtmlInputText t = row.FindControl("time") as HtmlInputText;
Response.Write("<li>" + t.Value);
}
} protected void Button3_Click(object sender, EventArgs e)
{
GridViewRow row = (sender as Button).Parent.Parent as GridViewRow;
HtmlInputText t = row.FindControl("time") as HtmlInputText;
Response.Write("<li>" + t.Value);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderText="检查日期">
<ItemTemplate>
<input id="time" type="text" runat="server" name="time" style="width: 80px; text-align: center;" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="检查日期">
<ItemTemplate>
<asp:Button ID="Button2" runat="server" Text="得到方法2" CommandName="GetDate" CommandArgument='<%#Container.DataItemIndex %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="检查日期">
<ItemTemplate>
<asp:Button ID="Button3" runat="server" Text="得到方法3" Height="21px" OnClick="Button3_Click"
Width="89px" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="Button1" runat="server" Text="得到方法1" OnClick="Button1_Click" />
</form>
</body>
</html>
而且我用模板列试了,结果还是空值,没有读出input里的日期
protected void gv_checkinfor_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "btn_save_Click")
{
int i = Convert.ToInt32(e.CommandArgument.ToString());//gv行号
GridViewRow row = gv_checkinfor.Rows[Convert.ToInt32(e.CommandArgument)];
HtmlInputText t = row.FindControl("time"+i.ToString()) as HtmlInputText;
Response.Write(t.Value.ToString());
}
}