如何将值从Repeater传递给Modal,然后传递给C#ASP.NET中的CodeBehind?

时间:2018-11-09 09:56:10

标签: javascript c# html .net

这是我的中继器,我使用ID =“ lknReject”的LinkBut​​ton打开模式,我想在Eval(“ IdReq”)中发送值

<asp:Repeater ID="rptListaRequisicoes" runat="server" OnItemDataBound="rptListaRequisicoes_ItemDataBound">
            <HeaderTemplate>
                <table id="tblAdmin" class="table table-bordered table-hover">
                    <thead>
                        <tr>
                            <th></th>
                            <th>ID</th>
                            <th>Nome</th>
                            <th>Logistica</th>
                            <th>Estado</th>
                            <th>Data Criação</th>
                            <th>Data Alteração</th>
                            <th></th>
                            <th></th>
                            <th></th>
                        </tr>
                    </thead>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                        <asp:Label ID="lblIdColaborador" runat="server" Text='<%# Eval("IdColaborador") %>' Style="display: none;" />
                    </td>
                    <td>
                        <asp:Label Font-Bold="true" ID="lblIdReq" runat="server" Text='<%# Eval("IdReq") %>' />
                    </td>
                    <td>
                        <asp:LinkButton Font-Bold="true" runat="server" ID="lkbtnDetalhes" Text='<%# Eval("Nome") %>' OnClick="lkbtnDetalhes_Click" />
                    </td>
                    <td>
                        <asp:Label Font-Bold="true" ID="lblInfoLog" runat="server" Text='<%# Eval("InfoLog") %>' />
                    </td>
                    <td>
                        <asp:Label Font-Bold="true" ID="lblEstado" runat="server" Text='<%# Eval("Status") %>' />
                    </td>
                    <td>
                        <asp:Label Font-Bold="true" ID="lblDataCriacao" runat="server" Text='<%# Eval("DataCriacao") %>' />
                    </td>
                    <td>
                        <asp:Label Font-Bold="true" ID="lblDataAlteracao" runat="server" Text='<%# Eval("DataAlteracao") %>' />
                    </td>
                    <td>
                        <asp:LinkButton ID="lknAprove" Font-Bold="true" runat="server" ID="OnAprovar" Text="Validar" OnClientClick='<%# Eval("Nome","Javascript:return confirm(\"Deseja aprovar a requisição: {0}\");") %>' OnClick="OnAprovar_clik" />
                    </td>
                    <td>
                        <asp:LinkButton ID="lknReject"Font-Bold="true" CssClass="txtBox" runat="server" ID="OnRecusar" Text="Rejeitar" data-toggle="modal" data-target="#modalReject" data-whatever='<%# Eval("IdReq") %>' OnClientClick="javascript:return false;" />
                    </td>
                    <td>
                        <asp:LinkButton ID="lknEditar" Font-Bold="true" runat="server" Text="Editar" OnClick="lknEditar_Click" />
                    </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>

这是我的引导程序模式

<div class="modal fade" id="modalReject" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title text-center" id="exampleModalLabel" style="font-weight: bold; color: #142658;">Rejeitar Requisição</h4>
                </div>
                <div class="modal-body">
                    <div class="form-group">
                        <asp:Label runat="server" ID="lblMtvRej" Text="Motivo da Rejeição: " ForeColor="#142658" Font-Bold="true" />
                        <asp:TextBox runat="server" ID="txtMtvRej" CssClass="form-control" />
                    </div>
                    <div class="form-group">
                        <asp:Label runat="server" ID="lblMtvRejDesc" Text="Descrição: " ForeColor="#142658" Font-Bold="true" />
                        <asp:TextBox runat="server" ID="txtMtvRejDesc" TextMode="MultiLine" CssClass="form-control" Style="resize: none;" />
                    </div>
                </div>
                <div class="modal-footer">
                    <asp:Button runat="server" class="btn btn-default" data-dismiss="modal" Text="Cancelar" />
                    <asp:Button runat="server" ID="btnSendRejectMessage" CssClass="btn btn-primary" Text="Enviar Mensagem" BackColor="#de0426" OnClick="btnSendRejectMessage_Click" />
                </div>
            </div>
        </div>
    </div>

这是Modal Send Message按钮的CodeBehind函数,我无法在其上获取转发器arg,因此我不知道该怎么做,我想避免使用HiddenField。

 protected void btnSendRejectMessage_Click(object sender, EventArgs e)
    {
        try
        {
            RepeaterItem item = (sender as LinkButton).Parent as RepeaterItem;
            int IdReq = Convert.ToInt32((item.FindControl("lblIdReq") as System.Web.UI.WebControls.Label).Text);

            string constr = ConfigurationManager.ConnectionStrings["FolhaRegisto_ConnectionString"].ConnectionString;
            using (SqlConnection con = new SqlConnection(constr))
            {
                using (SqlCommand cmd = new SqlCommand("spRequisicao"))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@Action", "UPDATESTATUS");
                    cmd.Parameters.AddWithValue("@IdReq", IdReq);
                    cmd.Parameters.AddWithValue("@IdStatus", 5);

                    cmd.Connection = con;
                    con.Open();
                    cmd.ExecuteNonQuery();
                    con.Close();
                }
            }

            ScriptManager.RegisterStartupScript(this, this.GetType(), "key_name", "SucessoNote('Utilizador rejeitado.');", true);

        }
        catch (Exception er)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "key_name", "ErrorNote('Falha ao rejeitado utilizador');", true);
        }
    }

0 个答案:

没有答案