如何在gridview中的javascript函数中传递列值 [英] How to pass column value in javascript function in gridview

查看:53
本文介绍了如何在gridview中的javascript函数中传递列值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在代码后面绑定了gridView。我想使用javascript显示联系人姓名,具体取决于选中的复选框。

< asp:TemplateField HeaderText =Select> 
< ItemTemplate>
< asp:CheckBox ID =chkSelectonchange ='return checkUncheck(<%#Eval(ContactName)%>);'
Text ='<%#Eval( ContactName)%>'runat =server/>
< / ItemTemplate>
< / asp:TemplateField>





Eval函数在Text属性中工作,并在复选框值中显示联系人姓名。但是在checkUncheck()中它不起作用。在页面的源代码中,我可以在checkUncheck()函数中找到这个参数:

 onchange =return checkUncheck(& lt;%#Eval(& quot; ContactName& quot;)%>); 

解决方案

你的标记需要改变一点(单引号/双引号组合)。仔细按照以下行找出你错过了什么。

 <   asp:CheckBox     ID   =  chkSelect    onchange   =   <%  javascript:checkUncheck(' + Eval(  ContactName)+  ') >  Text ='<% #Eval(  ContactName)%>' runat =server/> 





加价:

 < span class =code-keyword><   asp:gridview     runat   =  server    id   =  grdData     autogeneratecolumns   = < span class =code-keyword> False    xmlns:asp   = #unknown >  
< span class =code-keyword>< >
< asp:boundfield < span class =code-attribute> runat = server showheader = headertext = Id datafield = Id / >
< asp:templatefield headertext = 选择 >
< ItemTemplate >
< asp:CheckBox ID = chkSelect onchange = <% javascript:checkUncheck(' + Eval( ContactName)+ < span class =code-string> ')% > Text ='<% #Eval( ContactName)%>' runat =server/>
< / ItemTemplate >
< / asp:templatefield >
< / columns >
< / asp:gridview >





数据模型:

  public   class 数据
{
public long ID { get ; set ; }
public string ContactName { get ; set ; }

public static IEnumerable< data> GetDataList()
{
return new [] { new 数据{Id = 1 ,ContactName = Habib}, new 数据{Id = 2 , ContactName = Khorshed}, new 数据{Id = 3 ,ContactName = Shojol}};
}
} < / 数据 >





代码落后

 < span class =code-keyword> protected   void  Page_Load( object  sender,EventArgs e )
{
if (!Page.IsPostBack)
LoadGrid();
}
私有 void LoadGrid()
{
IEnumerable< data> data = Data.GetDataList();
grdData.DataSource = data;
grdData.DataBind();
} < / 数据 >





使用asp .net复选框onchange事件将无效。如果你看到渲染html

 <   span      önchange  =  javascript:checkUncheck('Shojol') >  <  输入    id   =  MainContent_grdData_chkSelect_2   类型  = 复选框    名称  = < span class =code-keyword> ctl00 


MainContent

grdData

I am binding gridView in code behind. I want to display Contact Names using javascript depending on checked checkboxes.

<asp:TemplateField HeaderText="Select">
                        <ItemTemplate>
                            <asp:CheckBox ID="chkSelect" onchange='return checkUncheck(<%#Eval("ContactName") %>);'
                                Text='<%#Eval("ContactName") %>' runat="server" />
                        </ItemTemplate>
 </asp:TemplateField>



Eval Function is working in Text property and displaying contact names in checkboxes values. But in checkUncheck() it not working. In source of the page I can find this argument in checkUncheck() function:

onchange="return checkUncheck(&lt;%#Eval(&quot;ContactName&quot;) %>);"

解决方案

your markup need to change little(single quote/double quote combination). Carefully follow the following line and find out what did you miss.

<asp:CheckBox ID="chkSelect" onchange=<%# "javascript:checkUncheck('" + Eval("ContactName") + "')" %> Text='<%#Eval("ContactName") %>' runat="server" />



Markup:

<asp:gridview runat="server" id="grdData" autogeneratecolumns="False" xmlns:asp="#unknown">
    <columns>
        <asp:boundfield runat="server" showheader="True" headertext="Id" datafield="Id" />
        <asp:templatefield headertext="Select">
             <ItemTemplate>
                <asp:CheckBox ID="chkSelect" onchange=<%# "javascript:checkUncheck('" + Eval("ContactName") + "')" %> Text='<%#Eval("ContactName") %>' runat="server" />
            </ItemTemplate>
        </asp:templatefield>
    </columns>
</asp:gridview>



Data Model:

public  class  Data
{
    public long Id { get; set; }
    public string ContactName { get; set; }

    public static IEnumerable<data> GetDataList()
    {
        return new[] { new Data { Id = 1, ContactName = "Habib" }, new Data { Id = 2, ContactName = "Khorshed" }, new Data { Id = 3, ContactName = "Shojol" } };
    }
}</data>



Code behind

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
        LoadGrid();
}
private void LoadGrid()
{
    IEnumerable<data> data = Data.GetDataList();
    grdData.DataSource = data;
    grdData.DataBind();
}</data>



with asp .net checkbox onchange event will not work. If you see the render html

<span  önchange="javascript:checkUncheck('Shojol')"><input id="MainContent_grdData_chkSelect_2" type="checkbox" name="ctl00


MainContent


grdData


这篇关于如何在gridview中的javascript函数中传递列值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆