前台代码
<div class="area-list">
<ul class="menu">
<asp:Repeater ID="Repeater1" runat="server"
onitemdatabound="Repeater1_ItemDataBound">
<ItemTemplate>
<li>
<a href="#"><%#Eval("FoodType") %></a>
<ul class="menu-in">
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<li>
<asp:LinkButton ID="FoodtypeID" runat="server"><%#Eval("FoodType") %></asp:LinkButton>
<!--<a id="<%#Eval("FoodTypeID") %>" href="javascript: void(0);" onclick="dd('<%#Eval("FoodTypeID") %>')"><%#Eval("FoodType") %></a>-->
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
后台
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
} private void BindGrid()
{
string connString = ConfigurationManager.ConnectionStrings["sqlconnectionstring"].ConnectionString;
SqlConnection conn = new SqlConnection(connString);
string sql = "Select * From tb_FoodType where FoodTypeUp=0";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds, "Table1"); DataTable dt = ds.Tables["Table1"];
Repeater1.DataSource = ds;
Repeater1.DataBind(); }
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rep = e.Item.FindControl("Repeater2") as Repeater;
DataRowView rowv = (DataRowView)e.Item.DataItem;
int typeid = Convert.ToInt32(rowv["FoodTypeID"]);
string sql2 = "select * from tb_FoodType where FoodTypeUp='" + typeid + "'";
DataSet ds2 = GetDs(sql2, "Table1");
rep.DataSource = ds2.Tables["Table1"];
rep.DataBind();
}
}
public DataSet GetDs(string sql, string table)
{
string connString = ConfigurationManager.ConnectionStrings["sqlconnectionstring"].ConnectionString;
SqlConnection conn = new SqlConnection(connString);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
ds.Clear();
da.Fill(ds, table);
return ds;
}
<div class="area-list">
<ul class="menu">
<asp:Repeater ID="Repeater1" runat="server"
onitemdatabound="Repeater1_ItemDataBound">
<ItemTemplate>
<li>
<a href="#"><%#Eval("FoodType") %></a>
<ul class="menu-in">
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<li>
<asp:LinkButton ID="FoodtypeID" runat="server"><%#Eval("FoodType") %></asp:LinkButton>
<!--<a id="<%#Eval("FoodTypeID") %>" href="javascript: void(0);" onclick="dd('<%#Eval("FoodTypeID") %>')"><%#Eval("FoodType") %></a>-->
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
后台
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
} private void BindGrid()
{
string connString = ConfigurationManager.ConnectionStrings["sqlconnectionstring"].ConnectionString;
SqlConnection conn = new SqlConnection(connString);
string sql = "Select * From tb_FoodType where FoodTypeUp=0";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds, "Table1"); DataTable dt = ds.Tables["Table1"];
Repeater1.DataSource = ds;
Repeater1.DataBind(); }
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rep = e.Item.FindControl("Repeater2") as Repeater;
DataRowView rowv = (DataRowView)e.Item.DataItem;
int typeid = Convert.ToInt32(rowv["FoodTypeID"]);
string sql2 = "select * from tb_FoodType where FoodTypeUp='" + typeid + "'";
DataSet ds2 = GetDs(sql2, "Table1");
rep.DataSource = ds2.Tables["Table1"];
rep.DataBind();
}
}
public DataSet GetDs(string sql, string table)
{
string connString = ConfigurationManager.ConnectionStrings["sqlconnectionstring"].ConnectionString;
SqlConnection conn = new SqlConnection(connString);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
ds.Clear();
da.Fill(ds, table);
return ds;
}
protected void FoodtypeID_Click(object sender, EventArgs e)
{
Response.Write("x");
}
<asp:LinkButton ID="FoodtypeID" runat="server" Text='<%#Eval("FoodType") %>' onclick="FoodtypeID_Click"><%#Eval("FoodType") %></asp:LinkButton>
后台:
protected void FoodtypeID_Click(object sender, EventArgs e)
{
LinkButton linkID = sender as LinkButton;
string a = this.FoodtypeID.text;
}
一直显示
不包含“FoodtypeID”的定义,并且找不到可接受类型为“OrderFood”的第一个参数的扩展方法“FoodtypeID”(是否缺少 using 指令或程序集引用?)
{
LinkButton linkID = sender as LinkButton;
string a = linkID.Text;
}
其实你完全可以自定义一个Attribute来实现,如:
<asp:LinkButton ID="FoodtypeID" runat="server" Text='编辑' CustomerAttribute='<%#Eval("FoodType") %>' onclick="FoodtypeID_Click"><%#Eval("FoodType") %></asp:LinkButton>
后台代码为:protected void FoodtypeID_Click(object sender, EventArgs e)
{
LinkButton linkID = sender as LinkButton;
string a = linkID.Attributes["CustomerAttribute"];
}
{
LinkButton linkID = sender as LinkButton;
string a = linkID.CommandArgument;
Response.Write(a);
//或者 a = linkID.Text
}