关于后台获取前台html控件的问题

Liuning19891218 2010-11-09 03:09:41
我在datalist空间中使用了checkbox这个html控件,然后我想在后台获取datalist中的checkbox空间。不要告诉我在前台控件中加run="server",因为我前台要用JS遍历了该控件,不能加那句。哪位知道的就来帮帮忙吧。
...全文
1723 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
parse 2011-04-08
  • 打赏
  • 举报
回复
request.form["checkbox1"]
另外说声:这里的 "checkbox1" 是html控件中的name 的属性值,所以你要先给html控件配name属性。
<input type='checkbox' id ='checkbox0001' name='checkbox1' />
btxp163 2010-12-30
  • 打赏
  • 举报
回复
你用服务端控件或者html控件加"runat=server"后,使用js不起作用,是因为服务端控件的客户端id并非控件id本身。 所以你在js 中,只要拿到控件的客户端id,js还是同样起作用的。举例说明:
假设有一input控件,
<input type=button id='btnOk' runat='server' value="OK"/>
那么你在html的<script>和</script>之间里,可以这么拿到这个控件的id:
var btnOkId='<%=btnOk.ClientID%>';
这样,btnOKId即为这个button控件的真正客户端id, 拿到客户端id后,你就可以用js控制它了。
这个方法同样适用于asp.net服务端控件。总之,只要是服务端控件,想要在客户端的js里控制它,都要按照这种方法拿到服务端控件的正确客户端id.
Liuning19891218 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ruiruixu 的回复:]

你用模板了吧用模板的话id就变了 查看源码找到id的值
或者
request.form["checkbox1"]
[/Quote]我尝试过你的方法,不行的。不过仍然感谢你的帮助
Liuning19891218 2010-11-11
  • 打赏
  • 举报
回复
我发现了我存在的问题:就是我是前台调用方法,这样服务器加载的时候总是首先执行我调用的方法,这样我前台就根本不可能向后台传值,所以是无法实现前台调用后台方法并传递形参的。
我是想将前台选择图片的checkbox的value值传给后台,然后后台再依据value值进行删除操作。所以问下大家有没有什么办法可以不然服务器首先执行被调用的方法。
若-相惜 2010-11-11
  • 打赏
  • 举报
回复
你用模板了吧用模板的话id就变了 查看源码找到id的值
或者
request.form["checkbox1"]
Liuning19891218 2010-11-09
  • 打赏
  • 举报
回复
我现在换了中方法就是给方法弄的形参,然后前台给他形参,也就是我要的控件的某个属性。但是有点问题,希望各位能帮我看下。(后台的方法) [System.Web.Services.WebMethod]
public int Photo_Delete(string val)
{
int a =0;
string str = "DELETE Pictures WHERE Name=@Name";

SqlParameter[] pram = { new SqlParameter("@Name", val) };
a=database.RunProc(str, pram);
return a;

}
公共类中的方法
public int RunProc(string ProName,SqlParameter[] prams) //对数据库进行插入、删除、更新操作,带参数
{
this.Open();
SqlCommand Command = new SqlCommand(ProName,con);
if (prams != null)
{
foreach (SqlParameter i in prams)
{ Command.Parameters.Add(i); }
}
Command.ExecuteNonQuery();
this.Closed();
return 1;
}
前台调用 function photo_delete() {
var a = 0;
var x = document.getElementsByName("select_photo"); for (var i = 0; i < x.length; i++) { if (x[i].checked == true) break; if (i == x.length - 1) { alert("请先选择图片");return; } }
var que = confirm("确定要删除图片?");
if (que == 0)
return;
for (var i = 0; i < x.length; i++)
{
if (x[i].checked == true) { a = '<%=Photo_Delete("'+x[i].value+'")%>'; }
}
alert(a);
}
我执行删除文件,程序没错误,可是数据库中的数据还是没删掉。公共类中的方法肯定没问题,我其他地方都还用过,就是不知道原因了。大家帮帮忙,解决了我加分。
panda158 2010-11-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 rock870210 的回复:]

查看下源代码,如果ID不同,该控件的客户端ID就是ID.ClientID
[/Quote]
这个可以,我上次就是ASP.NET会给ID值,变成ID.ClientID试下
sunny_yu 2010-11-09
  • 打赏
  • 举报
回复
request.form[]
Rock870210 2010-11-09
  • 打赏
  • 举报
回复
查看下源代码,如果ID不同,该控件的客户端ID就是ID.ClientID
细嗅蔷薇 2010-11-09
  • 打赏
  • 举报
回复
如果想在后台获取前台html控件的值 就加runat="server" 可以直接获取
要么就用js 给hidden赋值 再到后台去hidden的值
你把html的控件id 改成和你的数据id一样就行了 或者改成你想要的值
Liuning19891218 2010-11-09
  • 打赏
  • 举报
回复
我在datalist控件间中使用了checkbox这个html控件,然后我想在后台获取datalist中的checkbox空间。不要告诉我在前台控件中加runat="server",因为我前台要用JS遍历了该控件,不能加那句。哪位知道的就来帮帮忙吧!
我使用过System.Web.UI.HtmlControls.HtmlInputCheckBox checkbox = (System.Web.UI.HtmlControls.HtmlInputCheckBox)item.FindControl("checkbox1") ,(我这里的item=datalist1.datalistitem[i];)但是获取不到ID=“checkbox1”的控件,应该是我的ID和服务器端产生的ID不同,所以获取不到。

62,271

社区成员

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

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

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

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