chapa Kularathne Ответов: 1

Как сделать скрытое поле значение в HTML-код кнопки в код позади в ASP.NET


Я создал HTML-таблицу с повторителем. В этой таблице я добавил столбец кнопок. Это HTML-кнопка, потому что кнопки ASP не работают внутри тега. Поэтому я добавил скрытое поле ASP внутри этой HTML-кнопки, чтобы получить выбранный идентификатор строки. Я попробовал несколько способов получить идентификатор из скрытого поля. Я хочу получить выбранный идентификатор строки при нажатии кнопки.

Что я уже пробовал:

Я попробовал следующее

Я пробовал этот код, но показывает ошибку в строке SendValueToSender(id);. SendValueToSender отображается красной линией с использованием предложений, которые он генерирует методом. Но когда я запускаю код и нажимаю кнопку, появляется ошибка.

button_edit_ServerClick

protected void button_edit_ServerClick(object sender, EventArgs e)
    {
        try
        {
            var btn = (HtmlButton)sender;
            var child = btn.FindControl("hidden");
            string id = Convert.ToString(((HiddenField)child).Value);
            SendValueToSender(id);
            Response.Write("id" + id);

        }
        catch (Exception exception)
        {
            Response.Write(exception);
        }
    }


Сгенерированный метод для SendValueToSender

private void SendValueToSender(string id)
    {
        throw new NotImplementedException();
    }


Ошибка-после добавления метода SendValueToSender

Система.NotImplementedException: метод или операция не реализованы. в EasyTravel.Управлять.ManageNode.SendValueToSender(строковый идентификатор) в C:\Users\kularathna\source\repos\EasyTravel\EasyTravel\Manage\ManageNode.aspx.cs:line 241 в EasyTravel.Управлять.ManageNode.button_edit_ServerClick(отправитель объекта, EventArgs e) в C:\Users\kularathna\source\repos\EasyTravel\EasyTravel\Manage\ManageNode.aspx.cs:line 229

229 - SendValueToSender(id);
241 - throw new NotImplementedException();


Метод PageLoad

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            //Create Database Connection
            SqlConnection con = new SqlConnection("Data Source= LAPTOP-J70EHC58 ; Initial Catalog= Bus_Management_System ; Integrated Security = True ; Connect Timeout = 30 ; ");
        con.Open();

        //Retrieve node details
        string sqlst = "SELECT * FROM Node ";
        SqlDataAdapter sqlData = new SqlDataAdapter(sqlst, con);
        DataTable dt = new DataTable();
        sqlData.Fill(dt);
        rptrNode.DataSource = dt;
        rptrNode.DataBind();

        }

    }


ManageNode.aspx-файл

<table id="datatable-buttons" class="table table-striped table-bordered">
                                <thead>
                                    <tr>
                                        <th>Node_ID</th>
                                        <th>Node_Name</th>
                                        <th>Starting_Node</th>
                                        <th>Ending_Node</th>
                                        <th>Distance_Between_Nodes</th>
                                        <th>Ticket_Price</th>
                                        <th>Action</th>
                                    </tr>
                                </thead>

                                <tbody>
                                    <asp:Repeater ID="rptrNode" runat="server">
                                        <ItemTemplate>
                                            <tr>
                                                <td>
                                                    <asp:Label ID="lblNodeID" runat="server" Text='<%# Eval("Node_ID") %>'></asp:Label></td>
                                                <td>
                                                    <asp:Label ID="lblNodeName" runat="server" Text='<%# Eval("Node_Name") %>'></asp:Label></td>
                                                <td>
                                                    <asp:Label ID="lblStartingNode" runat="server" Text='<%# Eval("Starting_Node") %>'></asp:Label></td>
                                                <td>
                                                    <asp:Label ID="lblEndingNode" runat="server" Text='<%# Eval("Ending_Node") %>'></asp:Label></td>
                                                <td>
                                                    <asp:Label ID="lblDistance" runat="server" Text='<%# Eval("Distance_Between_Nodes") %>'></asp:Label></td>
                                                <td>
                                                    <asp:Label ID="lblTicketPrice" runat="server" Text='<%# Eval("Ticket_Price") %>'></asp:Label></td>
                                                <td>
                                                    <button runat="server" clientidmode="Static" class="btn btn-success" id="button_edit" onserverclick="button_edit_ServerClick">
                                                        <asp:HiddenField runat="server" ID="hidden" Value='<%#Eval("Node_ID") %>' />
                                                        Edit
                                                    </button>

                                                </td>
                                            </tr>

                                        </ItemTemplate>
                                    </asp:Repeater>
                                </tbody>


                            </table>


Колонка Кнопок(Это находится в приведенном выше ManageNode.aspx)

<td>
         <button runat="server" clientidmode="Static" class="btn btn-success" id="button_edit" onserverclick="button_edit_ServerClick">
             <asp:HiddenField runat="server" ID="hidden" Value='<%#Eval("Node_ID") %>' />Edit
         </button>
     </td>

1 Ответов

Рейтинг:
1

phil.o

Ошибка, которую вы получаете, - это NotImplementedException, что нормально, так как линия

throw new NotImplementedException();
достигнуто.

Это означает, что щелчок кнопки акуально вызывает SendValueTosender() метод. Возможно, вы забыли реализовать SendValueToSender() метод.


chapa Kularathne

можете ли вы помочь мне создать метод SendValueToSender? Потому что я не знаю, что мне делать внутри этого метода

phil.o

Я не могу, так как не знаю, что этот метод должен делать, ни на какие таблицы базы данных он должен действовать, ни логику реализации. Кроме того, реализация этого метода-ваша работа, а не наша. Мы бы с радостью помогли вам с некоторым кодом, который вы написали, который представляет проблемы, но я не думаю, что кто-то здесь готов сделать все это за вас.