Как получить доступ к параметру, который передал тег привязки, чтобы получить щелчок кнопки ссылки, используя JavaScript - PullRequest
0 голосов
/ 10 мая 2018

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

<ul class="list_load">
    <% for (int i = 0; i < dtscrippsyearcount.Rows.Count; i++)
        { %>
    <li class="list_item">
        <asp:LinkButton runat="server" ID="lnkdisplaytag" OnClick="lnkdisplaytag_Click"></asp:LinkButton>
        <a href="#" id="<%=dtscrippsyearcount.Rows[i]["TagId"].ToString() %>" onclick="javascript:GetSelectedTag('<%=dtscrippsyearcount.Rows[i]["TagId"].ToString() %>')"><%=dtscrippsyearcount.Rows[i]["TagName"].ToString() %></a></li>
    <%} %>
</ul>            


function GetSelectedTag(Tagid) {
    __doPostBack('lnkdisplaytag ', Tagid)
    $("#lnkdisplaytag").click();
     return true;
}

Код позади

protected void lnkdisplaytag_Click(object sender, EventArgs e)
{
    string parameter = Request["__EVENTARGUMENT"];////want to get tagid here
}

1 Ответ

0 голосов
/ 10 мая 2018

Я предлагаю вам начать использовать настоящие Contols, такие как Repeater, вместо создания встроенного цикла. В приведенном ниже фрагменте простого рабочего примера того, как использовать Repeater, заполните его данными и получите TagID при нажатии LinkButton.

Сначала добавьте Repeater на страницу aspx с помощью LinkButton в ItemTemplate. Обратите внимание на использование OnCommand вместо OnClick и свойства CommandArgument.

<ul class="list_load">
    <asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>

            <li class="list_item">

                <asp:LinkButton runat="server" ID="lnkdisplaytag" 
                   OnCommand="lnkdisplaytag_Command" CommandArgument='<%# Eval("TagId") %>'
                   Text='<%# Eval("TagName") %>'></asp:LinkButton>

            </li>

        </ItemTemplate>
    </asp:Repeater>
</ul>

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

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack == false)
    {
        Repeater1.DataSource = dtscrippsyearcount;
        Repeater1.DataBind();
    }
}

Затем, когда нажата кнопка LinkButton, вы можете легко получить значение CommandArgument.

protected void lnkdisplaytag_Command(object sender, CommandEventArgs e)
{
    Label1.Text = e.CommandArgument.ToString();
}
...