2016-11-16 41 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

你只是使用標籤所有的內容嗎? – Hank

+1

簡單的建議 - 不要從代碼後面做手動標記,而是使用Repeater和Button控件 – Andrei

+0

@Hank我使用標籤的唯一原因是因爲我從前面的例子中得到了它。 – user2911539

回答

0

首先,你應該提高你的問題了一下,按照提示的評論,但你可以瞄準上手是這樣的:

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

這會給你按鈕上的文本,並添加一個onclick事件,因爲你必須編寫腳本函數。這意味着您必須從您的查詢中獲取一些標識以識別數據庫中的每個唯一事件。當你有了這些,你可以編寫一些代碼來刪除一個唯一的行,並從頁面上的腳本調用該函數,但是如何做到這一點很大程度上取決於你使用的是什麼類型的後端,但一般的想法可能是類似於這:

<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中做到這一點,那麼我建議你一件事。使用錨,而不是按鈕和鏈接到同一頁面與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>"; 
在頁面加載

處理刪除功能

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

理想情況下,我想要一個特定的」節「在表格中的每個事件的頁面上,而不是一個標籤。我試圖避免使用會像表格一樣顯示的東西,有沒有辦法讓GridView看起來不像表格? – user2911539

相關問題