Member 12938448 Ответов: 2

Передачи управления hiddenfield на JavaScript от серверных


Привет ,
Это очень приоритетная задача, пожалуйста, помогите.
Может ли кто-нибудь помочь мне в следующем.
У меня есть gridview на моей странице, и он содержит Linkbutton.

При нажатии кнопки Linkbutton я вызываю код на стороне сервера, откуда я хочу вызвать функцию Javascript.
В функцию Javascript я хочу отправить три параметра: ID, Name и третий параметр-Hiddnefield Control.

Написав ниже код, я могу передать только идентификатор и имя, но не могу передать скрытый контроль поля.

Если я также пытаюсь передать скрытое поле, то мой javascript не вызывает.

Может ли кто-нибудь помочь мне в этом,Его высокий приоритет.

Ниже приведен код.

Нужна ваша драгоценная помощь.
Я перепробовал так много вещей,но это было не на высоте.

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

<asp:GridView ID="MyGrid" runat="server" AutoGenerateColumns="false" OnRowCommand="MyGrid_RowCommand">
        <columns>
            <asp:TemplateField HeaderText="Application ID">
                <itemtemplate>
                    <asp:Label ID="lblApplicationID" runat="server" Text='<%# Bind("application_id") %>'>
                    <asp:HiddenField ID="hdnApplicationID" runat="server" Value='<%# Bind("application_id") %>'>
                    
                
            
            <asp:TemplateField HeaderText="Application Type">
                <itemtemplate>
                    <asp:Label ID="lblApplicantType" runat="server" Text='<%# Bind("applicant_type") %>'>
                    <asp:HiddenField ID="hdnApplicantType" runat="server" Value='<%# Bind("applicant_type") %>'>
                    
                
            
            <asp:TemplateField HeaderText="Application Name">
                <itemtemplate>
                    <asp:Label ID="lblApplicatName" runat="server" Text='<%# Bind("applicant_name") %>'>
                    <asp:HiddenField ID="hdnApplicantName" runat="server" Value='<%# Bind("applicant_name") %>'>
                    
                
            
            <asp:TemplateField HeaderText="Document Type">
                <itemtemplate>
                    <asp:Label ID="lblDocumentType" runat="server" Text='<%# Bind("DOCUMENT_TYPE") %>'>
                    <asp:HiddenField ID="hdnDocumentType" runat="server" Value='<%# Bind("DOCUMENT_TYPE") %>'>
                    
                
            
            <asp:TemplateField HeaderText="Download">
                <itemtemplate>
                    <asp:LinkButton ID="lnkDownload" runat="server" Text="Download" CommandName="DownloadAddressProof">
                    <asp:HiddenField ID="hdnDocument" runat="server" Value="C:\Users\Prasanna\Desktop\SALARY SLIP JAN\GS POINT\ABHILASHA SALARY SLIP JAN-2017" />
                
            
            <asp:TemplateField HeaderText="Approve">
                <itemtemplate>
                    <asp:LinkButton ID="lnkApprove" runat="server" Text="Approve" Enabled="false">
                
            
            <asp:TemplateField HeaderText="Reject">
                <itemtemplate>
                    <asp:LinkButton ID="lnkReject" runat="server" Text="Reject" Enabled="false" CommandName="RejectAddressProof">

Код На Стороне Сервера:
protected void MyGrid_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            GridViewRow gvr = (GridViewRow)((Control)e.CommandSource).NamingContainer;
            int rowIndex = gvr.RowIndex;
            

            if (e.CommandName == "RejectAddressProof")
            {

                string applicationID = "";
                string applicantName = "";
                applicationID = ((HiddenField)gvr.FindControl("hdnApplicationID")).Value;
                applicantName = ((HiddenField)gvr.FindControl("hdnApplicantName")).Value;

                //Session["applicationID"] = applicationID;
                //Session["applicantName"] = applicantName;

                //string url = "Popup.aspx?applicationID=" + applicationID + "&applicantName=" + applicantName;
                //string s = "window.open('" + url + "', 'popup_window', 'width=300,height=100,left=100,top=100,resizable=yes');";
                //ClientScript.RegisterStartupScript(this.GetType(), "script", s, true);
                HiddenField hdnValue = ((HiddenField)gvr.FindControl("hdnApplicantType"));


                //Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "MyFunction('" + applicationID + "','" + applicantName + "'" + hdnValue + ")", true);
                Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "MyFunction('" + applicationID + "','" + applicantName + "'," + hdnValue + "')", true);
            }
        }

2 Ответов

Рейтинг:
1

Karthik_Mahalingam

Чтобы передать скрытое значение поля

HiddenField hdnValue = ((HiddenField)gvr.FindControl("hdnApplicantType"));
     string strValue = hdnValue.Value;


Чтобы передать скрытое поле Управления, просто передайте идентификатор элемента управления
HiddenField hdnValue = ((HiddenField)gvr.FindControl("hdnApplicantType"));
           string hdnId = hdnValue.ClientID;

           Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "MyFunction('" + applicationID + "','" + applicantName + "','" + hdnId + "')", true);

и выберите элемент управления в функции javascript как

function CallMyFunction (applicationID,applicantName, hdnId )
        {
            var hiddenControl = document.getElementById(hdnId);
            .
            .
            .
        }


Примечание:Вы не можете передать объект управления непосредственно из c#


Рейтинг:
0

Graeme_Grant

В Google Search есть множество примеров для вас: asp.net скрытое поле[^]


Member 12938448

Я ценю ваш ответ.
Но я пытаюсь передать весь контроль функции Javascript, а не значение скрытых полей.
Итак, можете ли вы помочь мне, как я могу отправить управление функцией javascript со стороны сервера

Graeme_Grant

Я не понимаю, что вы подразумеваете под "полным контролем". Вам нужно будет найти его в своем клиентском коде.

Dave Kreskowiak

Вы не можете пройти "контроль". Потому что на самом деле его не существует. "Элементы управления", на которые вы смотрите в ASP.NET это просто объекты, которые существуют только на стороне сервера, которые отображают HTML-строки, которые может отображать браузер. Если вы хотите вернуть " элемент управления "для добавления на страницу (глупо делать это ИМХО), верните HTML для" элемента управления", и javascript должен будет ввести этот HTML в DOM везде, где это уместно.