【问题标题】:ASP.Net c#, Repeater Itemcommand. I don't delete dataASP.Net c#,Repeater Itemcommand。我不删除数据
【发布时间】:2014-09-18 11:26:00
【问题描述】:

如果单击中继器控件中的按钮,则删除数据库中的数据但不起作用。我使用 Visiual Studio 2013。我的项目 ASP.Net 网站,我在 web.config 中使用 MasterPage 和 My Database 连接字符串命令。

这是 default.aspx.cs 文件

static string yol = ConfigurationManager.ConnectionStrings["cs"].ConnectionString;
SqlConnection baglanti = new SqlConnection();
SqlCommand sorgu = new SqlCommand();
SqlDataReader oku;
protected void Page_Load(object sender, EventArgs e)
{
    baglanti = new SqlConnection(yol);
    sorgu.Connection = baglanti;
    baglanti.Open();
    if (!Page.IsPostBack)
    {
        sorgu.CommandText = "select * from blog";
        oku = sorgu.ExecuteReader();
        haber.DataSource = oku;
        haber.DataBind();
        oku.Close();
    }
    baglanti.Close(); 
}

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    baglanti.Open();

    if (e.CommandName == "sil")
    {
       int id = Convert.ToInt32(e.CommandArgument);
        sorgu.CommandText = "delete from blog where id=" + id;
        sorgu.ExecuteNonQuery();
        haber.DataBind();
    }
    baglanti.Close();
}

默认.aspx 文件

<form runat="server">
    <asp:Repeater ID="haber" runat="server" OnItemCommand="Repeater1_ItemCommand">
         <ItemTemplate>
           <li class="mix nature" data-name="Woodstump">
       <a href="?<%# Eval("Id") %>"><img src="../img/work1.jpg" alt="" width="150px" height="150px"></a>
                 <h4> <%# Eval("baslik") %> <br />
                  <asp:Button ID="Button1"  Text="Button" runat="server" CommandName="sil" CommandArgument="<%# Eval("Id") %>" />
               </h4>
             </li>
           </ItemTemplate>
       </asp:Repeater>
    </form>

编辑:如果我使用这个命令CommandArgument="&lt;%# Eval("Id") %&gt;",Exeption 是“服务器标签格式不正确” 如果我使用这个命令CommandArgument='&lt;%# Eval("Id") %&gt;',不采取例外但不工作(不删除数据库中的数据)。

【问题讨论】:

  • 有异常吗?
  • 我使用了 try 和 cath 命令,但没有使用 exeption。页面已重新加载,但数据未删除
  • 看到您在 html 中将命令参数指定为“sil”,但在代码中使用命令名称作为“sil”。使用这个
  • @Manu 对不起,我改变了它,但我接受了这个例外:“服务器标签格式不正确。”
  • 尝试在 CommandArgument 中使用单引号,例如 CommandArgument='' 这应该可以。

标签: c# asp.net repeater


【解决方案1】:

我认为你发送的参数是反向的。

改变这个:

CommandArgument="sil" CommandName='<%# Eval("Id") %>'

到这里:

CommandArgument='<%# Eval("Id") %>' CommandName="sil"

【讨论】:

  • @OnePage : 更新答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
相关资源
最近更新 更多