前台js如何接受后台的值

qq_21238897 2017-09-12 09:52:53

for (int i = 0; i < GridView1.Rows.Count; i++) {
CheckBox chk = (CheckBox)GridView1.Rows[i].FindControl("CheckBox");
chk.Attributes.Add("onclick", "chkCount(this)");
}


function chkCount() {
alert"1");
}

如上,前台js如何获得i的值
...全文
1002 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
待良人 2017-09-13
  • 打赏
  • 举报
回复
引用 7 楼 qq_21238897 的回复:
方法是后端的,js写在<head>里面
不是绝对的,放<script>标签里,位置的话也可以在body里。页面加载完成就会调用
qq_21238897 2017-09-13
  • 打赏
  • 举报
回复
已解决
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                CheckBox checkBox = (CheckBox)e.Row.FindControl("checkbox1");
                Literal RowNumber = (Literal)e.Row.FindControl("RowNumber");
                string rowIndex = RowNumber.Text;
                checkBox.Attributes.Add("onclick", "Checked(this,'" + rowIndex + "');");
            }
        }
function Checked(e, rowIndex) {
            var i = parseInt(rowIndex);
            var gridview = document.getElementById("GridView1");
            var textbox = gridview.rows[i].cells[5].getElementsByTagName("input")[0];
            if (e.checked) {
                textbox.disabled = false;
                textbox.style.backgroundColor = "#c2e9e6";
            } else {
                textbox.disabled = true;
                textbox.style.backgroundColor = "";
            }
        }
  • 打赏
  • 举报
回复
后台生成的东西生成到前台也变成了HTML控件啊,然后你看下网页源代码根据name,ID或者控件类型来获取的获取一下值
qq_21238897 2017-09-12
  • 打赏
  • 举报
回复
alert("1");只是测试用的。我现在只需要得到当前i的值,然后前台修改东西,不需要把值传过来传过去阿
  • 打赏
  • 举报
回复
js 前端和服务器端 web 开发,是两种不同的技术体系。基本上需要你扔掉原来的服务器端的所有东西,从头开始设计前端 web 系统。 如果你写的不是
alert"1");
而是一大堆具体的 js 代码,那么可能可以根据你说明的比较深入一点的机制来谈(因为这方面并没有规范的做法,都是根据“深度知识”来设计的,每一个应用系统的的技术都不太一样)。而当你看上去完全没有学过 asp.net 一系列控件在 html 端产生什么东西、以及 asp.net 服务器端页面对象生命周期模型的时候,其实谁也没有信心说你能把 web 编程进行下去。比如说你写某个
jQuery("#abc").text("1")
然后又要“传给后台”,这就从一开始就会越来越多的问题,无止境地问题。
qq_21238897 2017-09-12
  • 打赏
  • 举报
回复
上回也说autopostback=“”true“”,但是根本就不是那个问题
qq_21238897 2017-09-12
  • 打赏
  • 举报
回复
大佬你好,我愿是做java web开发。我真的不是很明白,上回我提一个问题你也说autopostback=“”true“”问题,我知道这是客户端和服务器相互相应。但是响应是页面会刷新,我用js完成不行吗?
  • 打赏
  • 举报
回复
引用 6 楼 qq_21238897 的回复:
就是因为autopostback='true'用户体验差,然后用js来实现。
现在看起来,其实你还没有必要的知识去进行前端 web 应用设计开发。还是放弃吧。
qq_21238897 2017-09-12
  • 打赏
  • 举报
回复
方法是后端的,js写在<head>里面
qq_21238897 2017-09-12
  • 打赏
  • 举报
回复
就是因为autopostback='true'用户体验差,然后用js来实现。
  • 打赏
  • 举报
回复
引用 3 楼 qq_21238897 的回复:
[quote=引用 2 楼 sp1234 的回复:]
看得云里雾里,能简单通俗易懂吗[/quote] 因为你写的代码貌似是前端的,但是这样看起来你不理解 web 前端开发的原理。那么还是先学习 asp.net webform 的 AutoPostback 模式或者 Button Click 的回发式的编程吧。
  • 打赏
  • 举报
回复
前两种方式,页面是一遍遍地回发、重建的。跟第三种完全是不同的技术概念。它使用回发机制,例如为 checkbox 设置 Autopostback属性为 true,就会造成这种结果。但是回发是有代价的,asp.net 页面很慢,用户体验很差,所以通常还是保持这个属性为 false,仅当下次、其它页面造成页面回发时才处理 CheckBox 更新事件。
qq_21238897 2017-09-12
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
看得云里雾里,能简单通俗易懂吗
  • 打赏
  • 举报
回复
传统的 asp.net webform,使用 Button 控件完成页面回发(postback),从而可以从 asp.net 端代码使用事件驱动编程模式(MVP)模式来编写相关处理,修改页面某些控件的内容。此时 asp.net 可以自动保存、自动回填所有控件的内容(包括 GridView 的内部行、列框架内容等等),你只需要处理事件即可。 传统的 asp.net mvc 方式,需要你自己编写前端页面 <form action.....> 和 submit 提交处理代码,而它帮你路由方式找到一个对应的 controller 对象来读取 <form> 的 post 提交的数据。它既不帮你维系页面上成千上万的数据状态,也不精确到事件驱动编程模式。所以 asp.net mvc 其实是回归到20年前的 asp 编程模式的一种简单模式(只不过在绑定 html 的语句上有所改进)。 富客户端 js 前端编程模式,根本不回发。页面一旦加载,就是一个单页面的 web 应用程序,几十分钟、几个小时也不回发页面一次,而是用 js 与企业业务服务器进行通讯(例如 http/jquery 方式的 post 数据,或者 websocket 双向即时通讯)。页面( html 页面中的嵌入的 <div> 看上去才是一个个真正的可见页面)在前端根据数据的变化而自动渲染,从不进行 <form> 提交回发动作。
qq_21238897 2017-09-12
  • 打赏
  • 举报
回复
ddddddd
正怒月神 版主 2017-09-12
  • 打赏
  • 举报
回复
js获取i的值? i就是行。
<body>
    <form id="form1" runat="server">
        <asp:CheckBox ID="CheckBox1"  runat="server" />
        <asp:CheckBox ID="CheckBox2"  runat="server" />
        <asp:CheckBox ID="CheckBox3"  runat="server" />
    </form>
</body>

<script>
    $('input[name^="CheckBox"]').each(function (i, v) {
        $(this).bind("click", function click() {
            alert(i);
        });
    })

    
</script>
qq_21238897 2017-09-12
  • 打赏
  • 举报
回复
function chkCount(e) {
            var row = e.parentNode.parentNode;
            var rowIndex = row.rowIndex;
            if (e.checked) {
                alert("1");
            } else {
                alert("2");
            }
            debugger;
        }
qq_21238897 2017-09-12
  • 打赏
  • 举报
回复
引用 13 楼 chb345536638 的回复:
后台生成的东西生成到前台也变成了HTML控件啊,然后你看下网页源代码根据name,ID或者控件类型来获取的获取一下值
我这边不知道是不是版本问题,asp:CheckBox没onClick事件。e.parentNode..parentNode.rowIndex的值一直拿不到,打断点undefined

62,039

社区成员

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

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

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

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