Я перечисляю страницу с контентом из базы данных.Я хотел бы добавить функцию удаления к нему.Я использую заполнитель asp для размещения данных на странице.Также я использую номер телефона в качестве первичного ключа. Я пытался его найти.Но у меня ничего не получалось.Также будет здорово, если мы сможем использовать delete с помощью ajax.
Это страница тестовых рецептов, использующая asp.net с использованием C # и SQL Server.
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
//Populating a DataTable from database.
DataTable dt = this.GetData();
//Building an HTML string.
StringBuilder html = new StringBuilder();
//div structure
html.Append("<div class='container contest-wrapper'>");
//dynamic divs
int row_count = dt.Rows.Count;
html.Append("<div class='col-md-12'>");
html.Append("<p>Total Entries:" + row_count + "</p>");
html.Append("</div>");
foreach (DataRow row in dt.Rows)
{
html.Append("<div class='col-md-6 main-container'>");
html.Append("<div class='single-contest'>");
html.Append("<div class='collapse methodDiv' id='" + row["PhNo"].ToString() + "'><p>" + row["DishMethod"].ToString() + "</p></div>");
html.Append("<img class='img-responsive contest-img' src='" + row["DishImg"].ToString() + "'>");
//html.Append("<a runat='server' id='" + row["PhNo"].ToString()+ "' onserverclick='Delete(" + row["PhNo"].ToString() + ")' >Delete</a>");
//html.Append("<input type='hidden' runat='server' name='hdnPhNo' value='" + row["PhNo"].ToString() + "' />");
//html.Append("<input runat='server' OnClick='Delete(" + row["PhNo"].ToString() + ")' type='submit' name='buttonDelete' value='Delete Entry' />");
//html.Append("<button ID='delete' runat='server' Text='Delete' OnClick='delete(" + row["PhNo"].ToString() + ")'>Delete</button>");
html.Append("<p><b>Dish Name: </b>");
html.Append(row["DishName"].ToString());
html.Append("</p>");
html.Append("<p><b>Uploaded By: </b>");
html.Append(row["UserName"].ToString());
html.Append("</p>");
html.Append("<p><b>Email: </b>");
html.Append(row["Email"].ToString());
html.Append("</p>");
html.Append("<p><b>Phone Number: </b>");
html.Append(row["PhNo"].ToString());
html.Append("</p>");
//html.Append("<p><b>Dish Method: </b>");
//html.Append(row["DishMethod"].ToString());
//html.Append("</p>");
html.Append("<button type='button' class='method-btn' data-toggle='collapse' onclick='setColor(event)'; data-count='1' data-target='#"+ row["PhNo"].ToString() + "'>Method</button>");
html.Append("</div>");
html.Append("</div>");
}
//dynamic divs
html.Append("</div>");
//div structure
//Append the HTML string to Placeholder.
PlaceHolder1.Controls.Add(new Literal { Text = html.ToString() });
}
}
private DataTable GetData()
{
string constr = ConfigurationManager.ConnectionStrings["RecipeDataModel"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT * FROM RecipeContest"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
return dt;
}
}
}
}
}
public void delete(object sender, EventArgs e, int phNo)
{
//string phNo = hdnPhNo.Value;
//string phNo = Request["hdnPhNo"];
string connString = ConfigurationManager.ConnectionStrings["RecipeDataModel"].ConnectionString;
SqlConnection conn = null;
conn = new SqlConnection(connString);
conn.Open(); SqlCommand cmd = new SqlCommand();
cmd.CommandText = "DELETE FROM RecipeContest WHERE PhNo='" + phNo + "'";
cmd.Connection = conn;
int numberDeleted = cmd.ExecuteNonQuery();
//Display success message.
string message = "Your details have been deleted successfully.";
string script = "window.onload = function(){ alert('";
script += message;
script += "')};";
ClientScript.RegisterStartupScript(this.GetType(), "SuccessMessage", script, true);
}
Я хочу получить одну запись для удаления после нажатия на соответствующую кнопку удаления.Если AJax может быть реализован, это было бы здорово.