首页 新闻 会员 周边 捐助

下拉框实现下拉数据改变动态更新数据

0
悬赏园豆:100 [已解决问题] 解决于 2011-01-09 10:08

大哥们 帮我看看这个小问题 呀 

repeart控件,前面是个下拉框的input的select标签,怎么实现下拉框中的值更换了之后 后面数据也跟着变化呀

问题补充: 一个repeart控件,每一个 <ItemTemplate>上都绑定了一个input标签的select下拉框,后面是另外一些数据,现在想实现当select的值另外选择之后,后面的数据也跟着标签的改变而变化 现在绑定select标签的时候已经封装好了的方法,现在只能用select标签 不能用dropdownlist 想用Ajax但不是太会 帮帮忙给个示例之类的呀
魔痕的主页 魔痕 | 初学一级 | 园豆:0
提问于:2010-12-17 18:14
< >
分享
最佳答案
0

直接贴代码了:

            <ItemTemplate>
               <tr >
               <td>
               <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>

...

        //遍历Rpt中DListNewsIsShow的数据读取
        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);
            }
        }

收获园豆:100
Astar | 高人七级 |园豆:40805 | 2010-12-20 16:06
谢谢啦
魔痕 | 园豆:0 (初学一级) | 2010-12-22 17:56
其他回答(3)
0

  用服务器控件DropdownList或用ajax来操作

爱研究源码的javaer | 园豆:930 (小虾三级) | 2010-12-17 22:22
0

用DropdowList服务器端控件,并将AutoPostback属性设为true,然后添加change事件,在change事件中,强转    var ddl= sender as DropdownList;

然后通过ddl.Parent().FindControl("") 找到你要更新的同一行的某个控件,假设为control1, 最后根据需要取下拉列表选中项的value值将所需要更新数据的控件control1进行数据的更新,以达到联动的效果。

断肠人在天涯 | 园豆:225 (菜鸟二级) | 2010-12-18 01:33
0

ajax实现!如果嫌麻烦。用dropdownlist+updatePanel来实现!

Lee_Jelen | 园豆:180 (初学一级) | 2010-12-18 11:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册