2010-06-09 5 views
1

Я разрабатываю blog с использованием ASP.NET, и я хочу, чтобы пользователь мог добавлять комментарии.Добавление комментариев как facebook с ASP.NET

Так что я хочу реализовать идею facebook о добавлении комментариев.

Комментарий будет сохранен в database, поэтому я смогу загрузить его на странице, если пользователь перейдет на другую веб-страницу.

Вы знаете, как я могу это сделать (Ajax, Javascript, jQuery, Ajax Toolkit)?

EDIT:

Я нашел это:

<body> 

<form id="form1" runat="server"> 

<p> 

<textarea id="textArea"></textarea> 

</p> 

<input type="submit" value="Commenter"/> 

<br /> 

</form> 

<p>Add some Test to the page</p> 

</body> 

и script.js:

window.onload = initAll; 

function initAll() { 

document.getElementsByTagName("form")[0].onsubmit = addNode; 

} 

function addNode() { 

var inText = document.getElementById("textArea").value; 

var newText = document.createTextNode(inText); 

var newGraf = document.createElement("p"); 

newGraf.appendChild(newText); 

var docBody = document.getElementsByTagName("body")[0]; 

docBody.appendChild(newGraf); 

return false; 

} 

Но как я могу сохранить комментарий в базе данных, так как кнопка ввода может» Это сделать!

+0

Вам понадобится больше, чем Javascript, это точно. Он не может делать базы данных изначально. –

+0

Инструментарий Ajax и Ajax - почти синонимы, они обычно используются для функциональности и «преткновения», таких как таймеры, асинхронные обратные вызовы и т. Д. Вы будете беспокоиться об этой части в последний раз и сначала получить свою основную модель. –

+0

И, ASP.NET изначально поддерживает операции с базой данных, у вас не должно возникнуть проблем с получением базовой модели только с этой и с вашей базой данных. Хотя, энтузиасты JQuery будут кричать с поднятыми кулаками «Использовать JQuery!» у вас легко можно делать такие вещи без него. –

ответ

1

Как правило, если вы используете GridView для отображения этого сообщения в блоге просто добавьте поле шаблона в Gridview. Внутри поданного шаблона вы помещаете текстовое поле и кнопку.

Когда пользователь нажимает на кнопку, используйте свой код, чтобы найти postID и текстовое поле, и сохраните его в базе данных, а затем не забудьте снова привязать данные к gridview.

Вот пример кода.

protected void btnBuy_Click(object sender, ImageClickEventArgs e) 
{ 
    ImageButton btnBuy = (ImageButton)sender; //Find which button is clicked. 
    //If that is a button, use Button btnBuy = (Button)Sender; 

    GridViewRow row = (GridViewRow)btnBuy.NamingContainer; //Find which gridview row  //containes the clicked button 

    Label lblPostID = (Label)row.FindControl("lblPostID"); //Find the post ID 
    TextBox txtComment = (TextBox)row.FindControl("txtComments"); //Find the textbox 

    //Save the data to database. 
    //Put your code here. 

    //Bind the gridview with the data source which got some new data. 
    GridView1.DataSource = yourDataSource; 
    GridView1.DataBind(); 
} 
+0

см. Обновления. –

2

Для этого вам не обязательно использовать JavaScript, хотя, если вы хотите сделать это асинхронно, чтобы обеспечить более отзывчивый пользовательский интерфейс, вам понадобится JavaScript.

С помощью веб-форм ASP.NET существует несколько способов, которые это может быть настроено на стороне сервера. Вы можете использовать

  1. Page methods
  2. ASMX web services
  3. WCF services

И называть их с помощью JavaScript на стороне клиента. Внутри кода на стороне сервера вы можете подключиться к базе данных, выполнить операцию CRUD и вернуть ответ клиенту, который сделал вызов AJAX.

Замечание по безопасности - вы захотите дезинфицировать комментарии и смягчить SQL-инъекции, XSS, XSRF и другие типы инъекционных атак. Anti-XSS library (вскоре вытеснила библиотеку Web Protection) является хорошим инструментом для привлечения сделать это и предлагает лучший подход к кодированию, чем стандартные кодировки в ASP.NET

+0

Я потерялся перед всеми этими вещами. –

+0

скажем, как я могу реализовать комментарии, такие как stackoverflow? –

+4

Я бы порекомендовал сосредоточиться на том, чтобы начать стандартную работу обратной обратной связи, привязывая обработчик событий на стороне сервера к событию щелчка кнопки управления, чтобы отправить комментарий. После того, как вы это сделаете, попробуйте представить AJAX на картинке. –

Смежные вопросы