日期:2014-05-17  浏览次数:20471 次

gridview单击某一行时,取改行的值
我要实现的是单击gvPOHeader某一行时,gvPOLine会根据gvPOHeader选中行的字段值绑定数据,但是在单击时总是取不到值。
后台代码:

 protected void gvPOHeader_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {


                //单击/双击 事件
                
                e.Row.Attributes.Add("onmousedown", "getCode('" + e.Row.Cells[2].Text + "')");
               
                //注:OnClick参数是指明为鼠标单击事件,后个是调用javascript的getCode函数
            }
        }

前端代码:(我要获取的数据就是第三列,单据编号的值)

 <Columns>  
 <asp:TemplateField ItemStyle-CssClass="showcell" HeaderStyle-CssClass="showcell">
  <ItemTemplate><asp:LinkButton runat="server" ID="btnDetial" CommandName="Detail" >辅助列                       </asp:LinkButton></ItemTemplate></asp:TemplateField>
<asp:TemplateField ><ItemTemplate><asp:CheckBox ID="chSelect" runat="server" /></ItemTemplate></asp:TemplateField> 
<asp:TemplateField HeaderText="单据编号" >  <ItemTemplate> <%#Eval("FormCode").ToString()%> </ItemTemplate>  </asp:TemplateField> 

...

js代码:
 <script type="text/javascript"  language="javascript">
    function getCode(code)
    {
        document.getElementById("<%=frmCode.ClientID %>").value= code ;
    }
</script>


单击鼠标文本框没反应,开始我以为是数据没有传递过去,后来我把e.Row.Attributes.Add("onmousedown", "getCode('" + e.Row.Cells[2].Text + "')")改成e.Row.Attributes.Add("onmousedown", "getCode('aaa')")发现可以实现,说明不是数据没有传递过去,而是e.Row.Cells[2].Text没有获取到数据,这个方法里面设置断点也设置不了,不知道到底哪里出的问题,求大神们帮忙。
gridview