foreach遍历出来总是取第一个值或最后一个值?怎么取出想要的id对应值

这个问题还是比较常见的

问题原因:没有合理的取到相对应的id或者没有使id成为唯一性

解决方法,举个例子

//建个表单
<form id="form1" method="post">
		<table class="test" cellspacing="1" cellpadding="0" >
			<tr>
				<td style="width:20px;">序号</td>
				<td>菜名</td>
				<td>菜品简介</td>
				<td>金额</td>
				<td>菜品评价</td>
				<td>操作</td>
			</tr>
		<!--循环遍历 -->
		<!-- 集合 名称 状态 -->
		<c:forEach items="${list}" var="s" varStatus="c">
		//在id拼接序号,使id成为动态的和唯一性
		  <td><input type="hidden" id="menuList${c.index+1}" value="${s.id }"></td> 
		<tr align="center">
	    	<td>${c.index+1}</td>
			<td>${s.menuName}</td>
			<td>${s.foodIntroduction}</td>
			<td>${s.price}</td>
			<td>${s.foodEvaluation}</td>	
			<td> 
			//在按钮这将序号参数传出
				<button onclick="addNote(${c.index+1})">点餐</button>
			</td>
		</tr>
		</c:forEach>
	  </table>
	</form>

在javascript中 可接受参数并处理

<script type="text/javascript">
//创建方法 接收传参并处理
function addNote(status){
       //拼接获取的序号,使之与序号的id相对应
	  var id="#menuList"+status;
	  //再利用对应的id将值取出。这样就可以取出相对应的值了 
	  var foodId = $(id).val();
	  alert(foodId );		
}
</script>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,你需要在页面上添加一个 TemplateField 的 CheckBox 控件,代码如下: ```html <asp:GridView ID="GridView1" runat="server"> <Columns> <asp:TemplateField> <HeaderTemplate> <asp:CheckBox ID="chkSelectAll" runat="server" onclick="CheckAll(this);" /> </HeaderTemplate> <ItemTemplate> <asp:CheckBox ID="chkSelect" runat="server" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> ``` 上面的代码中,我们在 GridView 控件的 TemplateField 中添加了一个 CheckBox 控件,同时在 HeaderTemplate 中添加了一个全选的 CheckBox 控件,并绑定了一个 onclick 事件。 接下来,我们需要在 button 的 Click 事件中获勾选的 CheckBox 控件的,并传递给另一个界面的 GridView 控件中。代码如下: ```csharp protected void btnSubmit_Click(object sender, EventArgs e) { // 遍历 GridView 中的每一行 foreach (GridViewRow row in GridView1.Rows) { // 获 CheckBox 控件 CheckBox chkSelect = row.FindControl("chkSelect") as CheckBox; // 判断 CheckBox 是否被勾选 if (chkSelect != null && chkSelect.Checked) { // 获勾选的 string value = GridView1.DataKeys[row.RowIndex].Value.ToString(); // 传递给另一个界面的 GridView 控件 GridView2.DataSource = value; GridView2.DataBind(); } } } ``` 上面的代码中,我们遍历了 GridView 中的每一行,获 CheckBox 控件,并判断是否被勾选。如果被勾选,就获对应行的,并传递给另一个界面的 GridView 控件中。注意,我们使用了 DataKeys 属性来获对应行的。 另外,我们也可以使用 Session 或者 QueryString 等方式传递数据给另一个界面。具体实现方式可以根据具体需求进行选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值