功能描述:

  实现改变一行数据状态的值

  repeater 中用 dropdownlist 绑定一行状态的属性,用来改变行的状态(类似于isShow),通过HiddenField 绑定该行的ID,后台得到该ID的值去改变这一行的状态.

 

前台代码:

前台代码
<asp:Repeater ID="rep" runat="server" >
<ItemTemplate>
<tr>
<td>
<p><asp:DropDownList ID="ddl1" runat="server" SelectedValue='<%# Bind("isOn") %>' AutoPostBack="true" OnSelectedIndexChanged="ddl1_SelectedIndexChanged" >
<asp:ListItem Text="通過" Value="1" style="background: #0F0; color: #000;"></asp:ListItem>
<asp:ListItem Text="禁止" Value="0" style="background: red; color: #fff;"></asp:ListItem>
</asp:DropDownList><asp:HiddenField ID="hfreportId" runat="server" Value='<%# Eval("pid") %>' /></p>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>

 

 

后台代码:

protected void ddl1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl1
= sender as DropDownList;
HiddenField hfPid
= rep.Items[(ddl1.NamingContainer as RepeaterItem).ItemIndex].FindControl("hfreportId") as HiddenField;

string id = hfPid.Value;
string value = ddl1.SelectedValue;
new DbHelper().ExecuteNonQuery("update pic set isOn=" + value + " where pid=" + id);
Loadding();
}

 

 

 

SelectedValue
必须用<%# Bind("isOn")%>绑定

AutoPostBack
属性为true

OnSelectedIndexChanged
加上该事件

ddl1.NamingContainer as RepeaterItem).ItemIndex
通过选中的 dropdownlist 得到该行的索引
并找到该行HiddenField绑定的ID

posted on 2010-12-29 11:16  仰天長嘯  阅读(653)  评论(0编辑  收藏  举报
2222222222