still --使用FindControl实现绑定列的操作

使用FindControl实现绑定列的操作

文/ ryo
 

一般在网站的操作后台会有各种列表,这些列表是动态生产的,如果要对这些列表的某一行或者每一行进行操作,如下图:


操作中的“设为推荐”和“撤消推荐”两个按钮是动态生产的,点击会将所对应的行的状态改变。
对于初学者来说,实现这样的功能会有一定的困惑,因为这个操作按钮是动态生产的,他绑定在控件中,不能直接操作,这个时候,要用FindControl()来实现。FindControl()顾名思义就是帮你找到控件中的控件,现举例说明:

首先在页面绑定是,对于要操作的控件定义一个ID:
<TD><asp:LinkButton CommandName="Recomend" Runat=server CssClass="editbutton" ID="cmdRecomend" Text='<%# DataBinder.Eval(Container, "DataItem.fdArcgIsWorth").ToString()=="1"?"撤销推荐":"设为推荐" %>'></asp:LinkButton>
然后在后置代码里要加上这个事件的执行命令;
this.compArticle.ItemCommand +=new RepeaterCommandEventHandler(compArticle_ItemCommand);
最后就是实现对控件中的控件的操作:
private void compArticle_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName=="Recomend")
{
//通过FindControl来找到repeater控件中LinkButton;
LinkButton cmd = (LinkButton)e.Item.FindControl("cmdRecomend");
//下面的可以不看了…
Label lbl = (Label)e.Item.FindControl("fdArcgID");
FA_Article_Column_G_dao dao = new FA_Article_Column_G_dao();
DLDataSet ds = dao.funcGetByID(lbl.Text);
DLDataSet.FA_Article_Column_GRow drow = ds.FA_Article_Column_G[0];
drow.fdArcgIsWorth = cmd.Text=="撤销推荐"?0:1;
dao.funcUpdate(ds);
this.Init_Data();
}
}

 其实转换在sql就可以进行了,看下面例子

SELECT au_fname, au_lname, 
   CASE state
      WHEN 'CA' THEN 'California'
      WHEN 'KS' THEN 'Kansas'
      WHEN 'TN' THEN 'Tennessee'
      WHEN 'OR' THEN 'Oregon'
      WHEN 'MI' THEN 'Michigan'
      WHEN 'IN' THEN 'Indiana'
      WHEN 'MD' THEN 'Maryland'
      WHEN 'UT' THEN 'Utah'
        END AS StateName
FROM pubs.dbo.authors
ORDER BY au_lname

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值