Repeater中还嵌套了一个Repeater,请问如何实现编辑更新功能?

VVDI 2012-12-14 11:53:49
贴上代码,我点击了没反应
  protected void rpeMenuCategory_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
try
{


if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{


Repeater rpeSubMenu_cs = (Repeater)e.Item.FindControl("rpeSubMenu");

DataRowView rowv = (DataRowView)e.Item.DataItem;
int ParentId = Convert.ToInt32((rowv["T_ID"]));

string SubMenu_sql = string.Format("Select * From T_SysMenu Where T_ParentID ={0}", ParentId);

rpeSubMenu_cs.DataSource = db.RunDS(SubMenu_sql);

rpeSubMenu_cs.DataBind();

DbDataReader ddr = db.RunReader("Select T_Visible From T_SysMenu");
while (ddr.Read())
{
if (Convert.ToInt32(ddr[0]) == 1)
{
CheckBox ckb = (CheckBox)e.Item.FindControl("chkVisible");
ckb.Checked = true;
}
}
string t_id = rowv["T_ID"].ToString();
if (t_id != menuID.ToString())
{
((Panel)e.Item.FindControl("pnlItem")).Visible = true;
((Panel)e.Item.FindControl("pnlEdit")).Visible = false;

}
else
{
((Panel)e.Item.FindControl("pnlItem")).Visible = false;
((Panel)e.Item.FindControl("pnlEdit")).Visible = true;

}


}

}
catch (Exception ex)
{
Console.Write(ex.Message);
((Panel)e.Item.FindControl("pnlEdit")).Visible = false;
}
}
protected void GetAspNetPagerCount()
{
count_sql = count_sql + "And T_ParentID = 0 ";
int pageCount = Convert.ToInt32(db.RunScalar(count_sql));
AspNetPager1.AlwaysShow = true;
AspNetPager1.PageSize = 5;
AspNetPager1.RecordCount = pageCount;
}
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
rpeCategoryBind();

}
protected void rpeSubMenu_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)

{
DbDataReader ddr = db.RunReader("Select T_Visible From T_SysMenu");
while (ddr.Read())
{
if (Convert.ToInt32(ddr[0]) == 1)
{
CheckBox ckb =(CheckBox) e.Item.FindControl("chkVisible");
ckb.Checked = true;
}
}
}

}
protected void rpeMenuCategory_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "Edit")
{


menuID = int.Parse(e.CommandArgument.ToString());


}
else if (e.CommandName == "Cancel")
{
menuID= menuID - 1;
}
else if (e.CommandName == "Update")
{

}
}

<asp:Panel ID="pnlItem" runat="server">
<tr>
<td width="300px" height="25px"><%#(Container.ItemIndex+1) %></td>
<td ><%#Eval("T_ID") %></td>
<td><%#Eval("T_Order") %></td>
<td><%#Eval("T_Title") %></td>
<td><%#Eval("T_URL") %></td>
<td width="80px">
<center> <asp:CheckBox ID="chkVisible" runat="server" /></center></td>
<td><asp:LinkButton ID="lblEdit" runat="server" CommandArgument='<%#Eval("T_ID") %>' CommandName="Edit" Text="编辑"/></td>
<td width="80px"> <center> <asp:CheckBox ID="chkSelect" runat="server" /></center></td>
</tr>
</asp:Panel>
<asp:Panel ID="pnlEdit" runat="server">
<tr>
<td width="300px" height="25px"><%#(Container.ItemIndex+1) %></td>
<td ><%#Eval("T_ID") %></td>
<td>
<asp:TextBox ID="txtOrder" runat="server" Text=' <%#Eval("T_Order") %>'></asp:TextBox></td>
<td>
<asp:TextBox ID="txtTitle" runat="server" Text='<%#Eval("T_Title") %>'></asp:TextBox> </td>
<td>
<asp:TextBox ID="txtUrl" runat="server" Text='<%#Eval("T_URL") %>'></asp:TextBox> </td>
<td width="80px">
<center> <asp:CheckBox ID="CheckBox1" runat="server" /></center></td>
<td><asp:LinkButton ID="LinkButton1" runat="server" CommandName="Update" Text="更新" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "T_ID")%>'/>
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="Cancel" Text="取消" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "T_ID")%>'/>
</td>
<td width="80px"> <center> <asp:CheckBox ID="CheckBox2" runat="server" /></center></td>
</tr>
</asp:Panel>

后面还有一个Repeater 我先把大的弄上,就先不管那个,求代码最好,谢谢各位了!
...全文
140 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
VVDI 2012-12-14
  • 打赏
  • 举报
回复
回复于: 2012-12-14 12:40:27 就是findcontrol,和control.parent找控件就完了 你的问题在哪里? -------------------- 具体怎么实现,我的问题是点了编辑之后毫无反应,原本应该是要变成文本框的,可是。。。
  • 打赏
  • 举报
回复
就是findcontrol,和control.parent找控件就完了 你的问题在哪里?
VVDI 2012-12-14
  • 打赏
  • 举报
回复
吃完饭再回来看
VVDI 2012-12-14
  • 打赏
  • 举报
回复
求大神支招啊,折腾了一个上午!
VVDI 2012-12-14
  • 打赏
  • 举报
回复
回复aluogang: 已经解决问题了,谢谢你的回答
aluogang 2012-12-14
  • 打赏
  • 举报
回复
在Repeater1的ItemDataBound事件中 Repeater r=(Repeater)e.Item.FindControl("Repeater2"); r.ItemCommand += new System.Web.UI.WebControls.RepeaterCommandEventHandler(this.Repeater2_ItemCommand); private void Repeater2_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e) { }

62,046

社区成员

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

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

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

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