Передать идентификатор из строки GridView в функцию Javascript - PullRequest
1 голос
/ 03 сентября 2010

Первая закомментированная строка ниже работает с жестко закодированным ApplicantId, и все, что мне нужно, это заставить его работать, передавая текущий столбец ApplicantId в той же самой решетке.

Я пробовал уже много дней, и что-то вроде второй строки комментариев у меня не работает. Пожалуйста помоги.

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
DataKeyNames="ApplicantID" >
<Columns>

<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>

<!-- works -->
<asp:HyperLinkField NavigateUrl="javascript:popUp(3)" Text="Select" Target="_parent"/>

<!-- doesn't work -->
<asp:HyperLinkField NavigateUrl='"javascript:popUp("<%# + DataBinder.Eval(GridView1.DataItem,"ApplicantId") %> + ")"' Text="View" />

</Columns>
</asp:GridView>

Ответы [ 2 ]

1 голос
/ 14 сентября 2013

только что наткнулся на этот пост Попробуйте это, это будет работать

<asp:TemplateField>
<HeaderTemplate>Require Details ?</HeaderTemplate>
<ItemTemplate>
           <a href='javascript:ShowItemDetail(<%# Eval("Id")%>)'>Yes</a>
</ItemTemplate>
</asp:TemplateField>

:)

1 голос
/ 04 сентября 2010

К сожалению, мне никогда не удавалось заставить HyperLinkField выводить разумно при попытке создать URL-адрес JavaScript.Следующее, однако, будет работать для вас:

<asp:TemplateField>
    <ItemTemplate>
        <asp:HyperLink runat="server" 
          NavigateUrl='<%# "javascript:popUp(" + Eval("ApplicantId") + ")" %>'
          Text="View">
        </asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>

Одна вещь, о которой стоит помнить в любое время, когда вы не создаете URL-адрес JavaScript, это свойства DataNavigateUrlFields и DataNavigateUrlFormatString, так какПозволяет вам собрать URL намного чище:

<!-- Doesn't work due to "javascript:" target -->
<asp:HyperLinkField Text="View" DataNavigateUrlFields="ApplicantId"
     DataNavigateUrlFormatString="javascript:popUp({0})" />
<!-- Does work as targeting a "http://" target -->
<asp:HyperLinkField Text="View 2" DataNavigateUrlFields="ApplicantId" 
     DataNavigateUrlFormatString="http://localhost/popUp/{0}/" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...