2016-11-16 3 views
-1

リピータを使用してSQL Serverデータベースからデータを表示し、データベースの各行にボタンを追加しました。ここでリピータへのデータベース行の更新機能と削除機能の追加

はリピーターを充填するためのコードです:

SqlConnection connR; 
    string connectionStringR = ConfigurationManager.ConnectionStrings[ 
     "BallinoraDBConnectionString1"].ConnectionString; 
    connR = new SqlConnection(connectionStringR); 
    SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Events", connR); 
    DataTable dt = new DataTable(); 
    sda.Fill(dt); 
    Repeater1.DataSource = dt; 
    Repeater1.DataBind(); 

そしてここでは、リピータのコードは次のとおりです。

<asp:Repeater ID="Repeater1" runat="server"> 
         <ItemTemplate> 
          <div> 
           <table> 
            <tr><th><%#Eval("Event_Title")%></th><td><button>Edit</button></td><td><button>Delete</button></td></tr> 
            <tr><td>Event Group ID</td><td><%#Eval("Event_Group_Id") %></td></tr> 
            <tr><td>Event Type</td><td><%#Eval("Event_Type") %></td></tr> 
            <tr><td>Event ID</td><td><%#Eval("Event_Id") %></td></tr> 
            <br /> 
           </table> 
          </div> 
         </ItemTemplate> 
        </asp:Repeater> 

Hereは私が編集を追加する必要がどこか分からないUI です表示されるイベントの数はデータベースの行数に基づいているため、各行のコードを削除できます。

+0

を扱う、ページの読み込みにquerystring

以下のような
lblGroupOneEvents.Text += "<div> <table> <tr><td>" + reader["Event_Title"] + "</td>" + "</tr><tr><td><a href='samepage.aspx?remove=" + reader["id"] + "'>Remove</a></td></tr></table> </div>"; 

と同じページにアンカーの代わりに、ボタンやリンクを使用して、あなただけでは、コンテンツのすべてのラベルを使用していますか? – Hank

+1

シンプルな提案 - コードの背後から手動でマークアップしないでください。代わりにリピータとボタンコントロールを使用してください。 – Andrei

+0

@ハンク私がラベルを使用している唯一の理由は、 – user2911539

答えて

0

まず、あなたはおそらく、あなたの質問ビットを改善し、コメントでヒントに従いますが、何を始めるためにを目指すことができことは、このようなものである必要があります。

<button onclick="delFunc('bowlingId');">Delete Bowling</button>

これはあなたを与えるだろうボタン上のテキストと、スクリプト関数を記述するためのonclickイベントを追加します。つまり、データベース内のそれぞれのユニークなイベントを識別するために、クエリからIDを取得する必要があります。ユニークな行を削除するためのコードを書くことができ、その関数をページのスクリプトから呼び出すことができる場合、これを行う方法は使用しているバックエンドの種類によって大きく異なりますが、一般的な考え方は次のようになりますこれは:

<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script> 
    function delFunc(id) { 
    $.ajax({ 
    method: "POST", 
    url: "deleteEvent.php", 
    data: id 
    }) 
    alert('deleted '+ id +'!'); 
    } 
</script> 
</head> 

あなたはjQuery for the $.ajax仕事を呼び出す必要があります。

は、まあこれがうまくいけば、あなたは、少なくとも:)

+0

こんにちは、私は上記のonclickを追加しようとしましたが、私は私の質問で上記に示したエラーが発生しています。 – user2911539

+0

文字列の途中に引用符( ")が付いています...これは文字列を閉じています。何かを試す前に、非常に基本的なC#で読むことをお勧めします... – Milney

0

あなたはGridViewのでそれをしなければならないを始めることができます。

これがasp:labelで行われたければ、私はあなたに1つのことをお勧めします。削除機能

if(Request.QueryString["remove"]!=null) 
{ 
    //your delete code here 
} 
+0

理想的には、ラベルではなく表の各イベントのページに表示されます。私はテーブルのように表示される何かを使用することを避けようとしています、テーブルのようにグリッドビューを見せるための方法はありますか? – user2911539