2011-03-27 15 views
3

嗨,即時通訊:我想知道是否有可能添加一個asp按鈕到下面的代碼,下面的代碼將圖像和文本從我的數據庫添加到動態div在我的ASP頁:通過asp.net中的代碼添加按鈕到網頁,並刪除動態數據庫entrys

using System.Data.Odbc; 
using System.IO; 

public partial class UserProfileWall : System.Web.UI.Page 
{ 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     string theUserId = Session["UserID"].ToString(); 
     PopulateWallPosts(theUserId); 
    } 
    private void PopulateWallPosts(string userId) 
    { 

     using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=root; Password=commando;")) 
     { 
      cn.Open(); 
      using (OdbcCommand cmd = new OdbcCommand("SELECT wp.WallPostings, p.PicturePath FROM WallPosting wp LEFT JOIN User u ON u.UserID = wp.UserID LEFT JOIN Pictures p ON p.UserID = u.UserID WHERE wp.UserID=" + userId + " ORDER BY idWallPosting DESC", cn)) 
      { 
       //("SELECT wp.WallPostings, p.PicturePath FROM WallPosting wp LEFT JOIN [User] u ON u.UserID = wp.UserID LEFT JOIN Pictures p ON p.UserID = u.UserID WHERE UserID=" + userId + " ORDER BY idWallPosting DESC", cn)) 
       using (OdbcDataReader reader = cmd.ExecuteReader()) 
       { 
        test1.Controls.Clear(); 

        while (reader.Read()) 
        { 
         System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div"); 
         div.Attributes["class"] = "test"; 
       //div.Style["float"] = "left"; 

         div.ID = "test"; 
         Image img = new Image(); 
         img.ImageUrl = String.Format("{0}", reader.GetString(1)); 
         // this line needs to be represented in sql syntax 
         //img.ImageUrl = "~/userdata/2/uploadedimage/batman-for-facebook.jpg"; 
         img.AlternateText = "Test image"; 

         div.Controls.Add(img); 
         div.Controls.Add(ParseControl(String.Format("&nbsp&nbsp "+"{0}", reader.GetString(0)))); 
         div.Style["clear"] = "both"; 
         test1.Controls.Add(div); 

        } 
       } 
      } 
     } 
    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     string theUserId = Session["UserID"].ToString(); 
     using (OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite2; User=root; Password=commando;")) 
     { 
      cn.Open(); 
      using (OdbcCommand cmd = new OdbcCommand("INSERT INTO WallPosting (UserID, Wallpostings) VALUES (" + theUserId + ", '" + TextBox1.Text + "')", cn)) 
      { 
       cmd.ExecuteNonQuery(); 
      } 
     } 
     PopulateWallPosts(theUserId); 
    } 
} 

這是很奇怪的壽,如果我不設法添加類似於我已經加入的圖像方式的按鈕,我將如何調用該按鈕,例如:

我想調用這個按鈕「刪除」並添加代碼來刪除我的數據庫中與該div相關的文本,但是如果有多個div(所有命名爲相同的div id = test)和文本,並且它們都有同樣的asp按鈕,我將如何能夠告訴按鈕只刪除當前文本(在數據庫中)爲當前div?

我的數據庫存儲,像這樣的信息:

enter image description here

即時通訊思想我將不得不使用idwallposting但不知道如何?

而且給它看起來多麼它可以幫助援助在理解的可視化表示:

enter image description here

我的CSS和ASP:

div#test1 { 
} 
div .test { 
    width:90%; 
    z-index:1; 
    padding:27.5px; 
    border-top: thin solid #736F6E; 
    border-bottom: thin solid #736F6E; 
    color:#ffffff; 
    margin:0 auto; 
    white-space: pre; 
    white-space: pre-wrap; 
    white-space: pre-line; 
    word-wrap: break-word; 
} 

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server"> 
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js" type="text/javascript"></script> 
<p> 
    <asp:TextBox ID="TextBox1" name="TextBox1" runat="server" Rows="3" 
     Height="47px" Width="638px"></asp:TextBox> 
</p> 
<p> 
    <asp:Button ID="Button1" runat="server" Text="Post Message" Width="98px" 
     onclick="Button1_Click" /> 
    </p> 
<p> 
</p> 
    <style type="text/css"> 
    img {border-width:0px; width:100px; height:100px;} 
</style> 
    <div id="test1" runat="server" /> 


    </div> 


</asp:Content> 

回答

1

爲什麼不給每個div的一個獨特的ID如div.ID =「test」+ idWallPostings; ?

對於任何元素都有非唯一ID並不是一個好主意。

關於您的主要問題,爲什麼不使用Repeater或ListView之類的模板化數據控件之一,並添加一個Command處理程序。然後在模板中爲當前數據項的數據鍵添加一個帶有命令參數的按鈕。

看到:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.itemcommand.aspx

你可以看到如何在按鈕是用來攜帶額外的信息在其Click事件:

<asp:LinkButton runat="server" 
       ID="SelectEmployeeButton" 
       Text="Add To List" 
       CommandName="AddToList" 
       CommandArgument='<%#Eval("LastName") + ", " + Eval("FirstName") %>' /> 

以及它是如何檢索和使用(它是使用E訪問。 CommandArgument):

protected void EmployeesListView_OnItemCommand(object sender, ListViewCommandEventArgs e) 
    { 
    if (String.Equals(e.CommandName, "AddToList")) 
    { 
     // Verify that the employee ID is not already in the list. If not, add the 
     // employee to the list. 
     ListViewDataItem dataItem = (ListViewDataItem)e.Item; 
     string employeeID = 
     EmployeesListView.DataKeys[dataItem.DisplayIndex].Value.ToString(); 

     if (SelectedEmployeesListBox.Items.FindByValue(employeeID) == null) 
     { 
     ListItem item = new ListItem(e.CommandArgument.ToString(), employeeID); 
     SelectedEmployeesListBox.Items.Add(item); 
     } 
    } 
    } 
+0

因爲沒有爲造型加ID整個後端系統想試試我的方法堅持 – 2011-03-27 13:25:25

+0

還測試+ idwallposting將意味着它會出來爲Test1 TEST2 EYC並沒有CSS將應用於 – 2011-03-27 13:27:04

+1

使用測試1測試2等的id和class =「test」用於css或使用其他選擇器......您也可以爲刪除按鈕本身賦予唯一的ID ...然後通過在按鈕的事件中投射sender對象來讀取ID。 – 2011-03-29 07:57:09

1

對於C#從數據庫中刪除在Visual Studio 2008 ASP.net寫雙擊下面的代碼放在按鈕:

protected void btndel_Click(object sender, EventArgs e) 
    { 

     SqlConnection conn; 
     SqlCommand cmd; 
     conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename='C:\\Users\\THEGIRL\\Documents\\Visual Studio 2008\\WebSites\\WebSite72\\App_Data\\Database.mdf';Integrated Security=True;User Instance=True"); 
     conn.Open(); 
     cmd = new SqlCommand("Delete from logintable where username='"+txtdeluname.Text+"'",conn); 
     lbldel.Text = "Record is deleted"; 
     cmd.ExecuteNonQuery(); 
     conn.Close(); 
    } 
相關問題