我用的repeater绑定数据,由于repeater 是循环绑定行,我每绑定一行的时候我想获取<%# Eval("id") %>的值,语法是怎么写的
我是前台aspx文件中写的代码
<%
-省略代码-
string id=<%# Eval("id") %>,有什么办法让这个eval绑定的值赋值给id。
-省略代码-%> <ItemTemplate>
<tr>
<td>
<asp:Label ID="Label2" runat="server" Text='<%# this.GetSubString( Eval("Channel.channelName").ToString()) %>'></asp:Label>
</td>
<td>
<asp:Label ID="Label1" runat="server" Text='<%# this.GetSubString( Eval("spaceName").ToString()) %>'></asp:Label>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("id") %>' />
</td>
<td>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("price") %>'></asp:Label>
</td>
我是前台aspx文件中写的代码
<%
-省略代码-
string id=<%# Eval("id") %>,有什么办法让这个eval绑定的值赋值给id。
-省略代码-%> <ItemTemplate>
<tr>
<td>
<asp:Label ID="Label2" runat="server" Text='<%# this.GetSubString( Eval("Channel.channelName").ToString()) %>'></asp:Label>
</td>
<td>
<asp:Label ID="Label1" runat="server" Text='<%# this.GetSubString( Eval("spaceName").ToString()) %>'></asp:Label>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("id") %>' />
</td>
<td>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("price") %>'></asp:Label>
</td>
我不知道怎么获取那个行索引
{
string id = this.Repeater1.Items[循环的行索引].FindControl["ID名"];
}
照着这个方法处理
这个索引怎么获取呢
public string ReturnId(string id)
{
return id;
}
前台:
<%= ReturnId(Eval("id").ToString())%> //显示
或者定义变量
<%
string id=ReturnId(Eval("id").ToString());try
%>
<asp:Repeater ID="Repeater1" runat="server"
onitemcommand="Repeater1_ItemCommand">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" Text="删除" CommandArgument='<%#Eval("ID") %>' CommandName="Delete" /> <asp:Button ID="Button2" runat="server" Text="修改" CommandArgument='<%#Eval("ID") %>' CommandName="Update" />
</ItemTemplate>
</asp:Repeater>后台
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
String str=e.CommandName.toString();
if(str=="Delete"){
//删除的操作
//调用你写的删除方法进行删除
}else if(str=="Update"){
//修改操作
//调用你写的修改方法进行修改
}
}
可以在RepeaterItem_dataBound事件里面
直接 e.Itam.FindControl("ID") 这个不需要索引绑定完后循环遍历Repeater
for或者foreach
for(int i=0;i<Repeater1.Items.Count;i++)
{
Repeater1.Items[i].FindControl("ID")
}foreach(RepeaterItem item in Repeater1.Items)
{
item.FindControl("Id")
}要怎么用看你的需求了
<asp:Label ID="Label3" runat="server" Text='<%# Eval("price") %>'></asp:Label>
</td>
<td>
</td>
<td>
<asp:LinkButton ID="LinkButton1" runat="server">删除</asp:LinkButton>
</td> <%
List<ArrangeDate> list=new ArrangeDateManager().GetArrangeDateByOrderId("1");
//string id = ReturnId(Eval("id").ToString());
//Response.Write("<td>" + id + "</td>");
for (int i = 1; i <= 31; i++)
{
foreach (var item in list)
{ string yearAndMonth = item.ArrangeTime.Year + "," + item.ArrangeTime.Month;
if (item.Adspace.Id == 2 && item.ArrangeTime.Day == i && yearAndMonth == this.ddl_date.SelectedValue)
{
Response.Write("<td>1</td>");
}
}
Response.Write("<td></td>");
}
%>
</tr>
</ItemTemplate>
我想在for循环中获取那个绑定的ID的值
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label lbid = (Label)e.Item.FindControl("lbid");
}
}
在Repater_ItemDataBound里添加该字段的绑定控件的相应属性来调用方法来处理事情不就可以了。
类似:((TextBox)(e.Item.Controls[5])).Attributes.Add("onclick", "方法名('" + ((TextBox)(e.Item.Controls[5])).Text + "')");剩下的不就看你的方法怎么处理了。
<input value='<%Eval%>'>
2,id值
<li id='li<%Eval%>'></li>
3,臃肿的服务器代码 后台循环获取该控件下的所有表单值
<%%>服务器端代码如果这种实现,用,下面的itliyi的办法。
方法很多
<asp:Repeater ID="rpt" runat="server">
<ItemTemplate>
<table border="1">
<tr>
<asp:Label ID="dd" runat="server" Text='<%# Eval("TaskMask").ToString()%>'></asp:Label><!--用于保存id-->
<td><%# Eval("RoleName") == null ? "" : Eval("RoleName").ToString()%></td>
<td><%# Eval("Description").ToString().Length > 5 ? Eval("Description").ToString().Substring(0, 5) + "..." : Eval("Description").ToString()%></td>
<td><%# Eval("TaskMask")%></td>
<td><%# Eval("RoleFlags")%></td></tr>
</table>
</ItemTemplate>
</asp:Repeater>
</div>
</form>
<%
for (int i = 0; i < rpt.Items.Count; i++)
{
string id = "";
Label l = rpt.Items[i].FindControl("dd") as Label;//取得保存id的label对象
if(l != null)
{
id = l.Text;
Response.Write(id);
}
}
%>
绑定
<input name="cho" type="checkbox" value="<%#Eval("id")%>" /> 后台接收
string IDs = Request.Form["cho"].Replace(" ",",");