【问题标题】:get element value on checkbox checked in Gridview?在Gridview中选中复选框获取元素值?
【发布时间】:2018-06-15 15:18:23
【问题描述】:

我有一个带有 ItemTemplate(复选框和文本框)的 GridView

<asp:GridView ID="gvNonTimeCard" runat="server">
    <asp:TemplateField HeaderText="Delete?">
       <ItemTemplate>
           <asp:CheckBox ID="chkDelete" runat="server" onclick="return chkDelete_OnClick(this);"></asp:CheckBox>
       </ItemTemplate> 
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Date" >
        <ItemTemplate>
            <asp:TextBox runat="server" ID="txtDate" CssClass="Width_2" format="Date" Text='<%# DataBinder.Eval(Container,  "DataItem.DateWorked") %>' Description="Date on row ">                                        
            </asp:TextBox>
        </ItemTemplate>
    </asp:TemplateField>
</asp:GridView>

我编写了一个 JavaScript 函数来查找单击复选框上的 texDate 值。但我没有看到它的返回控件 ID“gvNonTimeCard_ctl03_txtDate”得到任何值?

function chkDelete_OnClick(objCheckbox) {
 if (objCheckbox != null) {
     console.log("objCheckBox null");
     var val = document.getElementById(objCheckbox.id.replace("chkDelete", "txtDate")).id;       
 }

【问题讨论】:

  • 在你的代码中替换这一行 var val = document.getElementById(objCheckbox.id.replace("chkDelete", "txtDate")).value;

标签: javascript c# asp.net gridview


【解决方案1】:

在你的代码中替换这一行

var val = document.getElementById(objCheckbox.id.replace("chkDelete", "txtDate")).value;

【讨论】:

  • 我还有一个问题。当我的网格超过 1 行时,下面的代码返回一个日期值。当我在网格中有 1 行时,“日期”返回为空值? foreach(gvNonEmployeeTimeCard.Rows 中的 GridViewRow 行){ deleteRow = Methods.SafeConvertToBool(((CheckBox)row.FindControl("chkDelete")).Checked); date = Methods.SafeConvertToDate(((TextBox)row.FindControl("txtDate")).Text.Trim());
猜你喜欢
  • 2017-01-16
  • 2017-11-03
  • 2012-03-06
  • 2012-09-23
  • 2011-03-02
  • 2014-07-14
  • 2011-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多