repeater 修改,有谁知道怎么做?

cenny_1996 2008-11-13 01:23:09
~~~~~~~~~~~~~~~~~~~~~~~aspx:
<asp:LinkButton ID="lbtSaveMusic" CommandName="edit" runat="server">修改</asp:LinkButton></div>

~~~~~~~~~~~~~~~~~~~~~~~~cs:
protected void rptSearch_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if ("edit".Equals(e.CommandName))
{
//修改操作
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
就是不知道怎么写修改操作,大家有没有例子?
...全文
140 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinaxc 2008-11-14
  • 打赏
  • 举报
回复
接分题。
cenny_1996 2008-11-13
  • 打赏
  • 举报
回复
to aigoo:
问题就出在这里 string sql = "update table set 字段='" + ((TextBox)e.Item.FindControl("tb_Reply")).Text + "'where id='" + e.CommandArgument + "'"; ,因为数据是三个表的。不知道怎么写三个表的sql更新语句。
aigoo 2008-11-13
  • 打赏
  • 举报
回复
if (e.CommandName == "SendReply")
{
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["连接字符串"]);
string sql = "update table set 字段='" + ((TextBox)e.Item.FindControl("tb_Reply")).Text + "'where id='" + e.CommandArgument + "'";
SqlCommand cmd = new SqlCommand(sql,conn);
conn.Open();
int var = cmd.ExecuteNonQuery();
if (var > 0)
{
ClientScript.RegisterStartupScript(GetType(), "success", "alert('修改成功')", true);
}
conn.Close();
SetBind();
}
jiang_jiajia10 2008-11-13
  • 打赏
  • 举报
回复
然后修改操作

protected void btnSave_Click(object sender, EventArgs e)
{
//修改服务器信息
string id = Request.QueryString["id"].ToString();
string strServerName = txtName.Text.Trim();
//取界面要改的控件的值
string strSql = "语句";
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["连接字符串"]);
conn.Open();
SqlCommand cmd = new SqlCommand(strSql , conn);
try
{

cmd.ExecuteNonQuery();
conn.Close();
}
catch (System.Exception e) {

conn.Close();
return false;
} }

}

简单写的你参考改一下,应该没有问题
jiang_jiajia10 2008-11-13
  • 打赏
  • 举报
回复
那就用这样写
在repeater模板里加上
<a href=' <%# "updateNews.aspx?id="+DataBinder.Eval(Container.DataItem, "新闻编号") %>'
然后跳到另外一个页面updateNews.aspx。在这个页面里这样写代码

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
{
string strId = Request.QueryString["id"].ToString();
string strSql = "select * from 表 where id='" +strId+ "'";
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["连接字符串"]);
conn.Open();
SqlDataAdapter dbAdapter = new SqlDataAdapter(strSql , conn);
DataSet ds = new DataSet();
dbAdapter.Fill(ds, 表名);
DataTable dt = ds.Table["表名"].DefultView;
foreach (DataRow dr in dt.Rows)
{
界面上的控件 = dr["要改的数据库的字段"].ToString();
}
}
}

cenny_1996 2008-11-13
  • 打赏
  • 举报
回复
to jiang_jiajia10:
还是搞不懂你说的。能得到id,但字段的值我怎么改?repeater不想gridview那样编辑的啊,还是不明白。
jiang_jiajia10 2008-11-13
  • 打赏
  • 举报
回复
给你写个repeater的

<asp:Repeater ID="rptSearch" runat="server" OnItemCommand="rptSearch_ItemCommand">
<ItemTemplate>

<asp:LinkButton ID="lbtSaveMusic" CommandName="edit" runat="server" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"ID")%>'>修改 </asp:LinkButton>
</ItemTemplate>
</asp:Repeater>



protected void rptSearch_ItemCommand(object source, RepeaterCommandEventArgs e)
{
string strID=string.Empty;
if ("edit".Equals(e.CommandName))
{
strID= (Convert.ToInt32(e.CommandArgument)).ToString();
//都得到主键了就update表吧,下面的我不写了
}
5Br 2008-11-13
  • 打赏
  • 举报
回复
用DATALIST吧
REPEATER一般只用来显示数据的


1.如果用DATALIST在当前页面修改
就可以这样写
前台加上edititemtemplate模板
用TEXTBOX绑定各项数据
protected void datalist_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if ("edit".Equals(e.CommandName))
{
string id=this.datalist.datakeys["e.item.itemindex"].tostring();//取出修改的是哪一行
textbox txtbox= (textbox或者其他空控件)e.item.findcontrol("你的TEXTBOX或者其他控件的ID")
}
}
都取出来然后存入数据库即可
2.如果要传值到另一个页面修改
那用REPEATER和DATALIST就没有区别了
传值过去,根据数据存入数据库

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧