SET Текст родительской страницы (aspx) из пользовательского элемента управления (ascx) с использованием JavaScript и без PostBack () - PullRequest
0 голосов
/ 28 августа 2018

У меня есть требования для изменения ASPX labelText в пользовательском элементе управления (ASCX) с использованием JavaScript и без обратной или частичной обратной передачи (панель обновления).

Подскажите, пожалуйста, как это реализовать? Спасибо

// EDIT

ASCX разметка

<script type="text/javascript" charset="UTF-8">
    function Show(text) {
        Popup.innerHTML = text;
        x = event.clientX + document.body.scrollLeft + 50;
        y = event.clientY + document.body.scrollTop + 20;
        Popup.style.display = "block";
        Popup.style.left = x - Popup.scrollWidth + "px";
        Popup.style.top = y + "px";
    }

    function Hide() {
        Popup.style.display = "none";
    }
</script>

<script type="text/javascript">
    function SaveTargetSign(id) {
        // Here i want to Access Parent Page Label and Set value.
    }
</script>

<table id="table1" width="970px" runat="server" cellpadding="0" cellspacing="0" style="border: solid 1px #D2B48C;">
    <tr>
        <td>
            <table id="tableSignature" width="975px" runat="server" cellpadding="0" cellspacing="0" style="border: solid 0px #D2B48C; background-color: ">
                <tr id="rowStatic" runat="server">
                    <td id="TD1" valign="top" style="width: 165px; border-bottom: solid 1px #D2B48C">
                        <div>
                            <div class="gridview">
                                <div class="outerSVSParent">
                                    <div class="scroll">
                                        <table class="gridtable" cellspacing="0" rules="all" border="1" style="width: 100%;
                                                border-collapse: collapse;">
                                            <tr class="header" style="height: 20px;">
                                                <td scope="col" id="lblDiv" runat="server">
                                                    <asp:Label ID="lblParentTitle" runat="server" Text="Title"></asp:Label>
                                                </td>
                                            </tr>
                                        </table>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div style="text-align: center">

                            <table>
                                <tr>
                                    <td>
                                        <asp:Label ID="lblSignId1" runat="server" Text=""></asp:Label>
                                    </td>
                                    <td>
                                        <uc1:ImageControl id="imageCtrl" runat="server" ShowActionButton="False" Height="80px" Width="100px" />
                                    </td>
                                </tr>
                                <tr></tr>
                            </table>

                        </div>
                        <%--                        <div>
                                <asp:Panel ID="pnlTargetSign" runat="server" Height="16px" HorizontalAlign="Center">
                                    <asp:CheckBox ID="cbTargetSign" runat="server" Text="Target Sign" TextAlign="Right" BackColor="White" ForeColor="#333333" BorderColor="#0066FF" BorderStyle="None" />
                                </asp:Panel>
                            </div>--%>

                    </td>
                    <td valign="top" style="border-bottom: solid 1px #D2B48C;">
                        <div style="height: 116px; overflow: scroll; padding-right: 20px;" id="tblDiv" runat="server">
                            <%--  <unisign:unisigngridview id="GridviewChild" autopostback="false" isnestedsvsgridview="True" pagesize="2" allowpaging="true" --%>
                                <UniSign:UniSignGridView ID="GridviewChild" AutoPostback="false" IsNestedSVSGridView="True" Width="805px" AllowSorting="true" runat="server">
                                </UniSign:UniSignGridView>
                        </div>

                    </td>
                </tr>
            </table>
            <%--  <unisign:unisigngridview id="GridviewChild" autopostback="false" isnestedsvsgridview="True" pagesize="2" allowpaging="true" --%>
                <div id="Popup" class="transparent" style="z-index: 200; width: auto; height: auto">
                </div>

                <asp:HiddenField ID="HFSVCurrentSelectedindex" Value="-1" runat="server" />
                <asp:HiddenField ID="HFTargetSign" Value="0" runat="server" />
        </td>
    </tr>
</table>

Код на стороне сервера для запуска JavaScript

  Dim scriptStatic = String.Format("javascript:return SaveTargetSign('{0}');", ststicId)
  rowStatic.Attributes.Add("onclick", scriptStatic)

Разметка родительской страницы

<asp:Label ID="lblTSV" runat="server" BackColor="#F4F4F4" Font-Bold="True" Font-Names="Arial" Font-Size="Small" ForeColor="#666666"></asp:Label>

1 Ответ

0 голосов
/ 28 августа 2018

Чтобы дать вам пример, как разговаривать на стороне клиента с любым элементом управления, который вы можете использовать

document.getElementById('<%=Label.ClientID%>').innerHTML = "Tekst";

Элементы управления получают другое имя на стороне клиента, поэтому вам нужно использовать document.getElementById.

Чтобы достичь того, чего вы хотите, вы можете использовать приведенный ниже вызов javascript со стороны сервера. Используйте вместо Page.User.Identity.Name текст, который вы хотите отобразить

Page.ClientScript.RegisterStartupScript(GetType(), "changeLabelText", string.Format("changeLabelText('{0}');", Page.User.Identity.Name), true);

, который будет выполнять вызываемый скрипт changeLabelText (labelText) на стороне клиента и передавать идентификационное имя в этом случае.

function changeLabelText(labelText){
   document.getElementById('<%=LBLProjectsHeader.ClientID%>').innerHTML = labelText;
}

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

Редактировать Некоторые элементы управления могут быть доступны с .value вместо .innerHTML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...