Repeater中绑定DropDownList和使用RepeaterItem

还是正在做的项目中遇到了使用Rpt的问题。查过MSDN后得到解决。

以前的后台系统用到了大量的GridView,前台都是Repeater。现在后台也用Repeater了~

代码如下:

ASPX:

       <asp:UpdatePanel ID="UpDPanelRptNews" runat="server" ChildrenAsTriggers="true" UpdateMode="Always">

          <ContentTemplate>

            <asp:Repeater ID="RptNew" runat="server" onitemdatabound="RptNew_ItemDataBound">

            <HeaderTemplate>

                <table border="0" align="center" cellpadding="1" cellspacing="1" width="580px" class="UserTable">

                  <tr class="UserTableRow2"><td width="150px"><b>标题</b></td><td width="80px"><b>作者</b></td><td width="75px"><b>类型</b></td><td width="75px"><b>是否显示</b></td><td width="100px"><b>删除</b></td></tr>     

            </HeaderTemplate>

            <ItemTemplate>

               <tr onmouseover="c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'" onmouseout="this.style.backgroundColor=c"><td width="150px"><a href='Admin_News.aspx?id=<%# Eval("id") %>' title='<%# Eval("title")+"["+Eval("adddate")+"}" %>'><%# WebFunction.StrHelper.CutStringMit(Eval("title").ToString(),20) %></a></td><td width="80px"><%# Eval("addname") %></td><td width="75px"><%# Eval("flag").ToString()=="1"?"动态":"新闻" %></td>

               <td width="75px">

               <asp:DropDownList ID="DListNewsIsShow" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DListNewsIsShow_SelectedIndexChanged">

                  <asp:ListItem Value="1"></asp:ListItem>

                  <asp:ListItem Value="0"></asp:ListItem>

               </asp:DropDownList><asp:Label ID="LabId" runat="server" Visible="false" Text='<%# Eval("id") %>'></asp:Label>

               </td>

            </ItemTemplate>

            <FooterTemplate></table></FooterTemplate>

            </asp:Repeater>

           </ContentTemplate>

         </asp:UpdatePanel> 

 

CS:

        //遍历RptDListNewsIsShow的数据读取

        protected void RptNew_ItemDataBound(object sender, RepeaterItemEventArgs e)

        {

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

            {

                DataRowView rowv = (DataRowView)e.Item.DataItem;

                DropDownList DListNewsIsShow = (DropDownList)e.Item.FindControl("DListNewsIsShow");

                DListNewsIsShow.Items.FindByValue(rowv["isshow"].ToString()).Selected = true;

            }

        }

               

        //异步更新新闻是否显示

        protected void DListNewsIsShow_SelectedIndexChanged(object sender, EventArgs e)

        {

            DropDownList DListFNewsIsShow = sender as DropDownList;

            RepeaterItem item = DListFNewsIsShow.Parent as RepeaterItem; //转为所在Item

            Label LabFId = item.FindControl("LabId") as Label;  //查找

 

            NewsInfo newsInfoRpt = new NewsInfo();

            newsInfoRpt.Id = LabFId.Text.ToString();

            newsInfoRpt.IsShow = Convert.ToInt16(DListFNewsIsShow.SelectedValue.ToString());

            if(news.Update(newsInfoRpt,"1")<=0)

            {

                ScriptManager.RegisterStartupScript(UpDPanelRptNews, typeof(UpdatePanel), "JsAlert", "alert('对不起,更新失败!!')", true);

            }

        }

posted @   Astar  阅读(1593)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示