【问题标题】:How to get javascript array inside asp.net button click event?如何在asp.net按钮单击事件中获取javascript数组?
【发布时间】:2017-01-02 11:28:57
【问题描述】:

网络应用程序。我有一个gridview与复选框。检查复选框后,我想向用户发送电子邮件。我的GridView列是ID,姓名,电子邮件I等。检查夹后,我想发送电子邮件。我编写了 javascript 代码来从 gridview 中获取所有电子邮件 ID,并将所有电子邮件 ID 推送到数组中。我很困惑如何将这些 id 带到服务器端。 这是我的按钮。

<asp:Button ID="Button1" class="submitLink blueButton" runat="server" Text="GETID" OnClientClick="javascript:sendEmail()" OnClick="Button1_Click" />

使用下面的代码行,我可以获得所需的电子邮件 ID

$('#<%= gdvRegretletter.ClientID %> input[type="CheckBox"]').each(function () {
    if ($(this).closest('tr').find('input[type="checkbox"]').prop("checked") == true)
        email.push($(this).closest('tr').find('td:eq(3)').text().trim());
});

数组电子邮件将捕获所有必需的电子邮件 ID,但我希望这些值位于服务器端的 Button1_Click 事件中。我可以有一些想法来实现这一目标吗?感谢您的时间。

【问题讨论】:

标签: javascript c# asp.net gridview


【解决方案1】:

您可以循环 GridView 中的所有行并查看哪个 CheckBox 已被选中。在这个 sn-p 中,电子邮件地址也以 Literal 形式显示在 GridView 中,但是还有很多其他方法可以从 GridView 或它的原始来源获取电子邮件地址。

<asp:GridView ID="GridView1" runat="server" DataKeyNames="Id">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="CheckBox1" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Literal ID="Literal1" runat="server" Text='<%# Eval("email") %>'></asp:Literal>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>


protected void Button1_Click(object sender, EventArgs e)
{
    //loop all the rows in the gridview
    foreach (GridViewRow row in GridView1.Rows)
    {
        //find the checkbox with findcontrol and cast it back to one
        CheckBox checkbox = row.FindControl("CheckBox1") as CheckBox;

        //is it checked?
        if (checkbox.Checked == true)
        {
            //do the same for the label with the email address
            Literal literal = row.FindControl("Literal1") as Literal;

            string email = literal.Text;

            //send email
        }
    }
}

【讨论】:

  • 感谢您的回复。我也会这样做。基本上是 MVC developer.new 到 asp.net 世界
  • 我可以知道我应该把 标签放在哪里吗?
  • 我已经更新了我的答案。但正如我提到的,您还可以通过其他几种方式获取行值。但最好的解决方案取决于您的 GridView 设计。
  • 非常感谢您的努力。
猜你喜欢
  • 1970-01-01
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多