页面代码:
<asp:Repeater ID="rpt_Message" runat="server" OnItemCommand="rpt_Message_ItemCommand">
<ItemTemplate>
<table width="600px" style="border:solid 1px #666666; font-size:10px; background-color:#f0f0f0">
<tr>
<td align="left" style="width:400px; height: 14px;">
<%# Eval("Message") %>
</td>
<td align="left" style="width:400px">
<%# Eval("PostTime") %> - <%# Eval("UserName")%>
</td>
</tr>
<tr>
<td colspan="2" align="left">
<hr style="width:300px"/>
<asp:Button ID="btn_DeleteMessage" runat="server" Text="删除留言" CommandName="DeleteMessage" CommandArgument='<%# Eval("ID") %>'/>
管理员回复:
<asp:TextBox runat="server" ID="tb_Reply" TextMode="multiLine" Width="300px" Text='<%# Eval("Reply") %>' />
<asp:Button ID="btn_SendReply" runat="server" Text="发表回复" CommandName="SendReply" CommandArgument='<%# Eval("ID") %>' />
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>cs代码:
protected void rpt_Message_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "DeleteMessage")
{
SqlConnection conn = new SqlConnection("server=.;database=GuesBook;uid=sa;pwd=yf3");
string sql = "DELETE FROM tbGuestBook WHERE ID='"+e.CommandArgument+"'";
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
SetBind();
}
if (e.CommandName == "SendReply")
{
SqlConnection conn = new SqlConnection("server=.;database=GuesBook;uid=sa;pwd=yf3");
string sql="UPDATE tbGuestBook SET IsReplied=1,Reply='"+((TextBox)e.Item.FindControl("tb_Reply")).Text+"' where ID='"+e.CommandArgument+"'";
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
SetBind();
}
}
这是我抄的代码,不明白的是没有单击事件为什么也能进行删除和添加数据啊???这里面哪几个是比较关键的?
<asp:Repeater ID="rpt_Message" runat="server" OnItemCommand="rpt_Message_ItemCommand">
<ItemTemplate>
<table width="600px" style="border:solid 1px #666666; font-size:10px; background-color:#f0f0f0">
<tr>
<td align="left" style="width:400px; height: 14px;">
<%# Eval("Message") %>
</td>
<td align="left" style="width:400px">
<%# Eval("PostTime") %> - <%# Eval("UserName")%>
</td>
</tr>
<tr>
<td colspan="2" align="left">
<hr style="width:300px"/>
<asp:Button ID="btn_DeleteMessage" runat="server" Text="删除留言" CommandName="DeleteMessage" CommandArgument='<%# Eval("ID") %>'/>
管理员回复:
<asp:TextBox runat="server" ID="tb_Reply" TextMode="multiLine" Width="300px" Text='<%# Eval("Reply") %>' />
<asp:Button ID="btn_SendReply" runat="server" Text="发表回复" CommandName="SendReply" CommandArgument='<%# Eval("ID") %>' />
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>cs代码:
protected void rpt_Message_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "DeleteMessage")
{
SqlConnection conn = new SqlConnection("server=.;database=GuesBook;uid=sa;pwd=yf3");
string sql = "DELETE FROM tbGuestBook WHERE ID='"+e.CommandArgument+"'";
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
SetBind();
}
if (e.CommandName == "SendReply")
{
SqlConnection conn = new SqlConnection("server=.;database=GuesBook;uid=sa;pwd=yf3");
string sql="UPDATE tbGuestBook SET IsReplied=1,Reply='"+((TextBox)e.Item.FindControl("tb_Reply")).Text+"' where ID='"+e.CommandArgument+"'";
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
SetBind();
}
}
这是我抄的代码,不明白的是没有单击事件为什么也能进行删除和添加数据啊???这里面哪几个是比较关键的?
解决方案 »
- 关于OracleDataAdapter update方法的用法
- Find()方法,找不到东西
- 一个COMBOX控件问题
- C#现有类的复制问题
- access数据库中以 OLE 对象方式存储的JPEG 图片显示到picturebox控件中
- 如何实现右击工具栏按钮
- 请各位大大帮忙解决下一个泛型类的问题
- 非常郁闷,WinForm中正常显示的自定义控件无法在WebForm中正常显示!
- 求教几个关于Dev中TreeList的问题
- 为什么DateTimePicker只能获取日期而不能获取时间?
- c#可以调用DLL里头的函数,能不能调用exe文件里头的函数呢?
- c#关于Socket的一个问题,还请高手指教一下
这个button可以触发单击事件,怎么说没有。
{
SqlConnection conn = new SqlConnection("server=.;database=GuesBook;uid=sa;pwd=yf3");
string sql = "DELETE FROM tbGuestBook WHERE ID='"+e.CommandArgument+"'";
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
SetBind();
}
这个是关键,判断你触发那个单击事件
<asp:Repeater ID="rpt_Message" runat="server" OnItemCommand="rpt_Message_ItemCommand">按钮中CommandName用于区分触发了哪个按钮的事件,CommandArgument用于传递参数,在你的例子中
CommandArgument传递的是这条数据的ID值
<asp:Button ID="btn_DeleteMessage" runat="server" Text="删除留言" CommandName="DeleteMessage" CommandArgument='<%# Eval("ID") %>'/>
事件处理程序中e.CommandName 来判断触发的删除按钮的事件
e.CommandArgument将ID值传递过来,拼装成sql语句,然后执行这条语句
if (e.CommandName == "DeleteMessage")
{
SqlConnection conn = new SqlConnection("server=.;database=GuesBook;uid=sa;pwd=yf3");
string sql = "DELETE FROM tbGuestBook WHERE ID='"+e.CommandArgument+"'";