GridView编辑模式下的问题

yzoneyzone 2009-03-27 10:45:55

<asp:TemplateField HeaderText="数值改变">
<EditItemTemplate>
数值改变:<br/><input id="NumericalChange" type="text" value='<%#Eval("NumericalChange") %>' runat="server"/><br/><a style="cursor:hand;" onclick="javascript:LoadAlert('NumberChange.htm',2,300,100,0,0);">设置</a>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="NumericalChangeLabel" runat="server" Text='<%#ReplaceProps(Eval("NumericalChange").ToString()) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>

如上代码,在编辑模式我调用了JS的一个弹出层方法,但是弹出层无法获得id="NumericalChange"的值,我仔细检查了生成后的HTML页面,这个Id被GridView重新生成并赋予了一个新的名字,所以Js无法找到该Id,现在我想到一个解决的方法,但不知道怎么做,一个是禁止GridView对id为NumericalChange的input重命名Id,好让Js能取到这个Id,但是不知道怎么实现。另外一个方法是去掉input控件后的runat="server"属性,Id就不会被重命名,但是在编辑完成提交后,程序获取不到input的值。很麻烦。所以请教高手帮忙!
...全文
168 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzoneyzone 2009-03-27
  • 打赏
  • 举报
回复
yzoneyzone 2009-03-27
  • 打赏
  • 举报
回复
如果前台input加上runat="server"
在后端获取string CapacityRequirements = ((HtmlInputText)(GridView1.Rows[e.RowIndex].FindControl("CapacityRequirements"))).Value.Trim().ToString();
Js就报错.
如果去掉runat="server"
JS是不会报错了,但是后端无法获取数据!
yzoneyzone 2009-03-27
  • 打赏
  • 举报
回复
主要是那个JS调用弹出层功能,首先要验证input里的数据,如果改为textbox的话,Id很难识别,生成后就变成了Gridview1_ct101_textbox1这种了,如果用input的话,把Id写死,就方便Js的调用了!
小河 2009-03-27
  • 打赏
  • 举报
回复
不用input用textbox之类的可以吗?
windsea123 2009-03-27
  • 打赏
  • 举报
回复
把GridView放入MasterPage页时,Runat='server'的控件ID会发生改变。要用JS获取控件id,可用var c = '<%=NumericalChange.ClientID%>'语句.
liuyeede 2009-03-27
  • 打赏
  • 举报
回复
给你一个例子参考一下,获取方法和例子中的方法完全一样:

protected void Button2_Click(object sender, EventArgs e)
{
Button btn = sender as Button;

int index = (btn.NamingContainer as DataListItem).ItemIndex ;

string tbxText =(TextBox)DataList1.Items[index].FindControl("TextBox1).Text;
}

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧