Попытка вызова функции (ASP. NET функция на стороне сервера) с кнопки HTML - PullRequest
0 голосов
/ 28 апреля 2020

Я получаю DataTable из Access DB с предложениями, и когда я создаю foreach l oop, я создаю, как он будет выглядеть в Интернете, вот код:

public partial class suggestions : System.Web.UI.Page{
protected string str = "";
protected string str1 = "";
protected int id = 0;

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        DataTable dt = myadohelper.ExecuteDataTable("YonatanDB.mdb", "select * from suggestionsTable");
        foreach (DataRow row in dt.Rows)
        {
            int like = int.Parse(row["likeCount"].ToString());
            int dislike = int.Parse(row["dislikeCount"].ToString());
            int score = like - dislike;
            str += "<div class='sug'>";
            str += "<div class='txt'>";
            str += "<h3>" + row["suggestionName"] + "</h3>";
            str += "<p>" + row["suggestion"] + "</p>";
            str += "</div>";
            str += "<div class='like'>";
            str += "<button type='button' id='btnLike" + row["ID"] + "' runat='server' onserverclick='Action_Click' ><img src='img/like.png' alt='Italian Trulli'/></button>";
            str += "<button type='button' id='btnDisLike" + row["ID"] + "' runat='server' onserverclick='Action_Click' ><img src='img/dislike.png' alt='Italian Trulli'/></button>";
            str += "<div class='likeNumber'>ציון: " + score + "</div>";
            str += "</div>";
            str += "</div>";
            str += "<br />";
        }
    }
}

protected void Action_Click(object sender, EventArgs e)
{

    HtmlButton b = sender as HtmlButton;

    string s = "";
    if (b != null)
    {
        s = b.ClientID;
    }
    str1 = "<p>" +s + "</p>";
}

}

и вот код HTML:

    <form id="my_form" method="post" runat="server">
    <h1>Main Suggestion</h1>
    <%=str1 %>
    <br /><br />
    <%=str %>
</form>

Я пытаюсь активировать функцию в Asp. net с именем «Action_click» из кнопок (названия кнопок являются "btnLike" и "btnDisLike" каждый идентификатор, я добавил идентификатор из БД) я создал,

по какой-то причине функция не работает, и я не знаю почему?

ps пока что функция только добавляет абзац на страницу HTML, но когда я увижу, что он померк, я его поменяю.

1 Ответ

1 голос
/ 28 апреля 2020

Вы должны использовать что-то вроде GridView , тогда вы можете использовать ButtonField со свойствами Command для достижения того, что вам нужно. Вам просто нужно установить источник данных, и он сгенерирует для вас весь код и события HTML.

<asp:sqldatasource id="CustomersSource"
    selectcommand="SELECT CustomerID, CompanyName, FirstName, LastName FROM 
    SalesLT.Customer"
    connectionstring="<%$ ConnectionStrings:AWLTConnectionString %>" 
    runat="server"/>

<asp:gridview id="CustomersGridView" 
  datasourceid="CustomersSource" 
  autogeneratecolumns="False"
  emptydatatext="No data available." 
  allowpaging="True" 
  runat="server" DataKeyNames="CustomerID">
<Columns>
    <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" 
        InsertVisible="False" ReadOnly="True" SortExpression="CustomerID" />
    <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" 
        SortExpression="CompanyName" />
    <asp:BoundField DataField="FirstName" HeaderText="FirstName" 
        SortExpression="FirstName" />
    <asp:ButtonField Text="Select" CommandName="Select" />
</Columns>
</asp:gridview>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...