巨郁闷的问题, DataList 使用 EditItemTemplate, 我想在 EditItemTemplate 中动态绑定 RadioButtonList

btbtd 2007-02-23 01:29:52
当我点击 Edit 触发 OnEditCommand 后, 我想在所显示的 项里,
动态绑定 Session 中的数据到 RadioButtonList, 怎么弄?

代码太长贴不了, 附就是以下DataList 的RadioButtonList

<form runat="server">
<!-- Begin flMng -->
<asp:Label id="flMngDebugLabel" runat="server" />
<asp:Label id="flMngNavigatorLabel" runat="server" />
<asp:Label id="flMngInfoLabel" runat="server" />
<asp:PlaceHolder id="flMngPh" runat="server" />

<div class="flMngFolderBar algr">
<asp:PlaceHolder id=flMngFolderPh runat=server
/>
</div>

<asp:DataList id="flMngFolderList" runat="server"
BorderColor="black"
CellPadding="5"
CellSpacing="5"
RepeatDirection="Vertical"
RepeatLayout="Flow"
RepeatColumns="10"
ShowBorder="True"
OnEditCommand="flMngEditCmd"
OnItemCommand="flMngItemCmd"
>

<HeaderTemplate>
<h3>目录:</h3>
<ol class="flMngFolderList">
</HeaderTemplate>

<HeaderStyle BackColor="#aaaadd">
</HeaderStyle>

<AlternatingItemStyle BackColor="Gainsboro">
</AlternatingItemStyle>

<ItemTemplate>
<li class="flMngDiv">
<div class="fltr">
<asp:LinkButton id="flMngEditButton"
Text="Edit"
CommandName="Edit"
runat="server"
/>
</div>
<a href="?path=<%# DataBinder.Eval(Container.DataItem, "FolderRelativePath") %>">
<%# DataBinder.Eval(Container.DataItem, "FolderName") %>
</a>
</li>
</ItemTemplate>

<EditItemTemplate>
<li>
<a href="?path=<%# DataBinder.Eval(Container.DataItem, "FolderRelativePath") %>">
<%# DataBinder.Eval(Container.DataItem, "FolderName") %>
</a>
<ul class="flMngEdit">
<li>
<span onclick="return confirm('确定要重命名文件夹吗?')">
<asp:LinkButton id=flMngUpdateFolderLb runat=server
Text="Rename:"
CommandName="flMngRenameFolderLb"
/>
</span>

<asp:TextBox id="flMngUpdateFolderTbx" runat="server"
Text=<%# DataBinder.Eval(Container.DataItem,"FolderName")%>
/>

<input type="hidden" id=flMngUpdateFolderHid runat=server
value=
<%# DataBinder.Eval(Container.DataItem,"FolderRelativePath")%>
/>
</li>
<li>
<span onclick="return confirm('现在添加新文件夹吗?')">
<asp:LinkButton id=flMngNewFolderLb runat=server
Text="New Folder:"
CommandName="NewSubFolder"
/>
</span>
<asp:TextBox id="flMngNewFolderTbx" runat="server"
/>
</li>
<li>
<span onclick="return confirm('确定要删除文件夹吗?')">
<asp:LinkButton id=flMngDeleteFolderLb runat=server
Text="Delete:"
CommandName="flMngDeleteFolder"
/>
<%# DataBinder.Eval(Container.DataItem,"FolderRelativePath")%>
</span>
</li>
<li>
<span onclick="return confirm('现在移动文件夹到根目录吗?')">
<asp:LinkButton id=flMngMoveFolderToRootLb runat=server
Text="Move To Root:"
CommandName="MoveFolderToRoot"
/>
</span>
</li>
<li>
<span onclick="return confirm('现在移动文件夹到父目录吗?')">
<asp:LinkButton id=flMngMoveFolderToParentLb runat=server
Text="Move To Parent:"
CommandName="MoveFolderToParent"
/>
</span>
</li>
<li>
<span onclick="return confirm('现在移动文件夹到至选定目录吗?')">
<asp:LinkButton id=flMngMoveFolderInLb runat=server
Text="Move Parent In:"
CommandName="MoveFolderIn"
/>
</span>

<asp:RadioButtonList id="flMngRdoBtnLst"
runat="server"/>

</li>
</ul>
</li>
</EditItemTemplate>
<%--
<SeparatorTemplate>
</SeparatorTemplate>
--%>
<FooterTemplate>
</ol>
</FooterTemplate>
</asp:DataList>

<div class="flMngUpload"><asp:PlaceHolder id=flMngUploadPh runat=server /></div>
<!-- End flMng -->
</form>
...全文
338 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
btbtd 2007-02-23
  • 打赏
  • 举报
回复
哦, 谢谢.

貌似用 FindControl 已经找到控件了.

void flMngEditCmd(Object sender, DataListCommandEventArgs e)
{
DataList dl = (DataList)sender;
dl.EditItemIndex = e.Item.ItemIndex;
BindList(dl);

HttpContext.Current.Response.Write("<li/>:"+e.Item.ItemIndex);

RadioButtonList rbl =
(RadioButtonList)(dl.Items[e.Item.ItemIndex].FindControl("flMngRdoBtnLst"));

HttpContext.Current.Response.Write("<li/>");
HttpContext.Current.Response.Write(rbl==null);
}
真相重于对错 2007-02-23
  • 打赏
  • 举报
回复
在itemdatabind 事件里做
btbtd 2007-02-23
  • 打赏
  • 举报
回复
void flMngEditCmd(Object sender, DataListCommandEventArgs e)
{
DataList dl = (DataList)sender;
dl.EditItemIndex = e.Item.ItemIndex;
BindList(dl);

//HttpContext.Current.Response.Write(flMngRdoBtnLst); // 找不到控件
}

没法子了. 我用 FindControl 也找不到.


btbtd 2007-02-23
  • 打赏
  • 举报
回复
DataTable

我试试,,, 不过好像不是这么简单呀.
在 DataList 中的控件处理有点复杂....
ztchen 2007-02-23
  • 打赏
  • 举报
回复
你的session是什么类型?若是可数据绑定的类型,那么在OnEditCommand事件中转换一下就可以赋给RadioButtonList了
btbtd 2007-02-23
  • 打赏
  • 举报
回复
问题解决...等一会再结帐...

void flMngEditCmd(Object sender, DataListCommandEventArgs e)
{
DataList dl = (DataList)sender;
dl.EditItemIndex = e.Item.ItemIndex;
BindList(dl);

RadioButtonList rbl =
(RadioButtonList)(dl.Items[e.Item.ItemIndex].FindControl("flMngRdoBtnLst"));

rbl.DataSource = (DataTable)Session["flMngVsFolderList"];
rbl.DataBind();
}

62,243

社区成员

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

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

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

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