2011-03-27 16 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(); 
    } 
相关问题