sadier

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
I have the following aspx and code behind to put a checkbox in repeater.
There are several problems:

- CheckBox2_CheckedChanged works well.  But I want to know who is being
checked, i.e. how can I pass userid back as an argument? (I can get
checkbox
client ID or checkbox text, but they do not serve the purpose well)

- repRoles_ItemCommand seems never fired, any hints on that?

Thanks.


==========================================================
<asp:repeater id="repRoles" runat="server"
 OnItemCreated="repRoles_ItemCreated"
 OnItemCommand="repRoles_ItemCommand">

<ItemTemplate>
<tr>
<td><%# DataBinder.Eval(Container.DataItem, "userid")%></td>
<td><asp:CheckBox id="CheckBox2"
            AutoPostBack=True runat="server"
            Checked='<%#(DataBinder.Eval(Container.DataItem,
"manager").ToString()=="1")
            ?true:false%>'></asp:CheckBox>
</td>
</tr>
</ItemTemplate>

===========================================================
protected void repRoles_ItemCommand(object source,
 System.Web.UI.WebControls.RepeaterCommandEventArgs e) {
 this.Response.Write("repRoles_ItemCommand<br>");
 Response.Write("Name:");
 Response.Write(e.CommandName);
}

protected void repRoles_ItemCreated(object sender,
 System.Web.UI.WebControls.RepeaterItemEventArgs e) {

 RepeaterItem ri=(RepeaterItem)e.Item;


if(ri.ItemType==ListItemType.Item||ri.ItemType==ListItemType.AlternatingItem
  ) {
  CheckBox CheckBox2=ri.FindControl("CheckBox2") as CheckBox;
  CheckBox2.CheckedChanged +=new EventHandler(CheckBox2_CheckedChanged);
 }
}

private void CheckBox2_CheckedChanged(object sender, EventArgs e) {

 CheckBox CheckBox2=(CheckBox)sender;
 Response.Write(CheckBox2.ClientID);
 if(CheckBox2.Checked) {
  this.Response.Write("Checked<br>");
 } else {
  this.Response.Write("Unchecked<br>");
 }
}
posted on 2004-08-24 11:34  毛小华  阅读(1079)  评论(1)    收藏  举报