将参数从Gridview列传递到Javascript

时间:2015-09-02 15:13:52

标签: c# jquery asp.net gridview webforms

我需要将一个参数(来自我的数据库)从radgrid视图列传递给我的javascript(打开一个对话框窗口)。但是,我无法使用" bind(" Id")"作为参数,我将javascript称为href。

简单来说,我正在寻找一种方法来传递<%Bind(" Id")%>到了javascript,OpenMyWindow,现在调用而不是硬编码,111。

<telerik:GridTemplateColumn UniqueName="Meet" DataField="Subject" HeaderText="Meet">
    <ItemTemplate>
        <div style="text-align: center">
            <asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Bind("Subject") %>' href="javascript: OpenMyWindow(111);" Width="30%">
            </asp:LinkButton>
        </div>
    </ItemTemplate>
</telerik:GridTemplateColumn>

当我尝试&#34; OnClick&#34;而不是&#34; href&#34;,我的弹出对话框立即关闭,并且不会保持打开状态。

4 个答案:

答案 0 :(得分:0)

尝试使用“OnClientClick”并从您的javascript方法返回false以防止回发。

可替换地。您可以使用传入DataIten的方法。然后输出你喜欢的锚标签:

 <%# formatOpener(Container.DataItem) %>

代码背后:

protected string formatOpener(object item)
{
      ObjectType myObj = (ObjectType)item;
      return String.Format("<a href=\"javascript:OpenMyWindow({0});\" width=\"30%\"/>{1}</a>", myObj.ID, myObj.subject);
}

答案 1 :(得分:0)

我认为您不需要LinkButton,您可以使用asp:HyperLink(呈现为a代码)来实现它:

<asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("Subject") %>' NavigateUrl='<%# "javascript: OpenMyWindow(" +  Eval("ID").ToString() + ");" %>'></asp:HyperLink>

另外,如果您不需要,请不要使用Bind,出于显示目的,请始终使用Eval

答案 2 :(得分:0)

用户HyperLink控件,尝试以这种方式设置HyperLink的NavigateUrl属性:

<asp:HyperLink ID="hlLink" runat="server" Text='<%# Bind("Subject") %>'  NavigateUrl='<%#Eval("Id", "javascript: OpenMyWindow({0});")%>'>

希望它有所帮助./.

答案 3 :(得分:0)

我终于找到并解决了这个问题。实际上,有人在另一篇文章中告诉我,CommandArgument完全是服务器端属性,并且不呈现任何html属性。所以我无法更改任何按钮的属性并点击它。我终于让“Id”通过后面的代码来实现它。

aspx代码

<telerik:GridButtonColumn UniqueName="Subject" DataTextField="Subject" HeaderText="Meeting">
             <HeaderStyle Width="30%" />
             <ItemStyle HorizontalAlign="Center" />
</telerik:GridButtonColumn>

背后的代码

var subjectLink = meetingRow["Subject"].Controls[0] as LinkButton;
subjectLink.Attributes.Add("onClick", "javascript: return OpenMyWindow('" + meetingId + "')");