C#.net repeater 动态绑定模板的问题。Literal等等相关内容!
问题是因为调用了几个方法和事件,所有内容都作为一个整体放到了Literal中,repeater中又需要添加服务器控件来做删除修改等操作,Literal中又不能绑定服务器控件所以不知道具体该怎么办。 因为百度提问的字数有限制所有代码不能尽数贴出来。
非常感谢你们的回答,可惜都没有看懂我提的问题, 不过也不能怪大家,一是没有代码,二是这个方式本来你们可能接触的也比较少。 最后用__doPostBack方法解决了,呵呵。很好,很成功! 展开
请问你的意思是不是在repeater里面一添加服务器控件就提示错误?如果是这个原因的话,建议你在repeater里面用html控件好了。
<asp:Repeater ID="Repeater1" runat="server" >
<HeaderTemplate>
<table align="center" cellpadding="2" cellspacing="1" width="99%" class="border">
<tr class="title">
<th width="5%">
ID
</th>
<th width="35%">
栏目连接(url)
</th>
<th width="20%">
栏目名称(name)
</th>
<th width="20%">
所属模块
</th>
<th align="center">
操作
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr id="di" class="tdMoveTr" onmouseover="this.className='tdMoveTrBg'" onmouseout="this.className='tdMoveTr'">
<td align="left">
<%# DataBinder.Eval(Container.DataItem,"Id") %>
</td>
<td align="left">
<%# DataBinder.Eval(Container.DataItem,"Url") %>
</td>
<td align="left">
<%# DataBinder.Eval(Container.DataItem,"UrlName") %>
</td>
<td align="left">
<img src="../../Images/folder.gif" /><%# DataBinder.Eval(Container.DataItem,"Comment") %>
</td>
<td align="center">
<a href="XTGL_edit.aspx?Id=<%# DataBinder.Eval(Container.DataItem,"Id") %>">修改</a>┊
<input type="checkbox" runat="server" id="checkbox" name="checkbox" value=<%# DataBinder.Eval(Container.DataItem,"Id") %> />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
点击修改,直接跳转页面,进入修改页面,至于删除代码如下:
int k = 0;
for (int i = 0; i < Repeater1.Items.Count; i++)
{
System.Web.UI.HtmlControls.HtmlInputCheckBox sb = (System.Web.UI.HtmlControls.HtmlInputCheckBox)Repeater1.Items[i].FindControl("checkbox");
if (sb.Checked)
{
jiaoxue.DeleteItem(sb.Value);
k++;
}
}
if (k == 0)
{
msg.ShowMsg("请选择要删除的记录!", this);
}
这样就可以用html控件解决这个问题了,希望这是你要的答案!
我就是想把删除做成服务器控件呢。要是跳到另一个页面去我就不来问咯。 另外你这个方式是把内容都写在 中然后再循环出来的。 我的方式是把
等等 内容全部生产html然后放进Literal,再把Literal放进controls的。动态加载的ItemTemplate 这些模板。
<HeaderTemplate>
<table id="category" cellpadding="0" cellspacing="0" align="center">
<tr>
<td>类型</td>
<td>编辑</td>
<td>删除</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("CategoryName")%></td>
<td><asp:LinkButton ID="LinkButton1" CommandName="update" CommandArgument='<%#Eval("CategoryId")%>' runat="server">编辑</asp:LinkButton></td>
<td><asp:LinkButton ID="LinkButton2" CommandName="del" CommandArgument='<%#Eval("CategoryId")%>' runat="server">删除</asp:LinkButton></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
添加repeater事件
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "update") //更新
{
}
else if (e.CommandName == "del") //删除
{
CategoryManager.DelCategory(Convert.ToInt32(e.CommandArgument));
Response.Redirect("~/Admin/AddCategory.aspx");
}
}
2011-03-15
2011-03-15