如图,我添加了一个Repeate控件,我想点击表里的“标记为已读按钮”将数据库test表Yws中的状态标记从默认的“1”改成“0”,应该对这个按钮怎样编程?知道要用Updata语句,但不知道条件怎么写才能绑定这一行。
你好,
你的意思是,你知道怎么确定你update 的是你点击按钮的这一行数据?
解决方案如下:
在你的表中应该有一列跟序号这样的,可以区分是哪一行值的一个主键。你添加repeater 的itemcommand 事件。在这个事件中,或者你当前选中行的序号。然后你可以根据这个序号,确定你要更新的是哪一行数据。
<asp:Repeater ID="rptCustomers" runat="server" OnItemCommand="rptCustomers_ItemCommand">
<HeaderTemplate>
<table cellspacing="0" rules="all" border="1">
<tr>
<th scope="col" style="width: 80px">Customer Id
</th>
<th scope="col" style="width: 120px">Customer num
</th>
<th scope="col" style="width:100px">button</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label ID="lblCustomerId" runat="server" Text='<%# Eval("Id") %>' />
</td>
<td>
<asp:Label ID="lblContactName" runat="server" Text='<%# Eval("num") %>' />
</td>
<td>
<asp:Button ID="Button1" runat="server" Text="Button" CommandName="Update"
CommandArgument='<%# Eval("Id") %>'/> ** // 添加CommandName 和CommandArgument。**
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
后台代码:
protected void rptCustomers_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "Update")
{
// 得到你选择button的 CommandArgument
string Id = (string)e.CommandArgument; // 如果你的Id是int 类型,那么可以写int
..........
}
}