复制网格中的第一行

时间:2013-08-09 09:58:59

标签: javascript asp.net

只想询问是否可以复制网格中行的第一个值? 例如。我有两个专栏。 A和B值是。如果我在第一行的B列中放置任何值。它应该填满剩下的所有行。

**Serial**   **CartNum**   Output **CartNum**
    1             1                    1
    2                                  1
    3                                  1
    4                                  1

这可能吗?我正在使用ASP.NET(VB),我想这是javascript吗?

这是我的网格代码。

<div class="Scrolls">
  <asp:DataGrid runat="server" ID="dgSerial" AutoGenerateColumns="false" ShowFooter="false" ShowHeader="false" GridLines="None" DataKeyField="BaseLineNum" AlternatingItemStyle-CssClass="AlternateGrid">
    <Columns>
      <asp:TemplateColumn>
        <ItemTemplate>
          <table border="0" style="border-bottom: 1px dotted; border-color: #FF0000">
            <tr>
              <td style="width: 20px;">
                <asp:CheckBox runat="server" ID="chkSelect"></asp:CheckBox>
              </td>
              <td style="width: 120px;">
                <asp:TextBox Width="120" ID="SerialNum" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "SerialNum")%>' />
              </td>
              <td style="width: 120px;">
                <asp:TextBox Width="120" ID="CartNum" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "CartNum")%>' />
              </td>
            </tr>
          </table>
        </ItemTemplate>
      </asp:TemplateColumn>
    </Columns>
  </asp:DataGrid>
</div>

希望听到积极的回应。

2 个答案:

答案 0 :(得分:0)

试试这个,它会帮助你

<script type="text/javascript">
function copy(){
    var inputCount = document.getElementById('tableId').getElementsByTagName('input').length;
    var name = document.getElementById('name').value;
    for(i=1;i<=inputCount;i++){
    document.getElementById('name_'+i).value = name;
    }
}
</script>
<table id="tableId">
<tr>
<td>
    <input type="text" id="name" onkeyup="copy();" name="name" />
    <input type="text" id="name_1" name="name_1" />
    <input type="text" id="name_2" name="name_2" />
    <input type="text" id="name_3" name="name_3" />
    <input type="text" id="name_4" name="name_4" />
</td>
</tr>
</table>

答案 1 :(得分:0)

您必须按上述方式编辑第二行模板:

<asp:TextBox Width="120" ID="CartNum" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "CartNum")%>'
  onchange="javascript: copy();" CssClass="row2"/>

然后添加Javascript魔法:

<script type="text/javascript">
  function copy() {
    var cells = document.getElementsByClassName("row2");
    for(var i = 1; i < cells.length; i++)
      cells[i].value = cells[0].value;
  }
</script>

我现在无法对此进行测试,所以我不确定它是否可以正常工作,但我相信它会稍作修改。

请注意,javascript代码始终从列的第一个单元格(cells [0])中获取值,因为您的问题正是您所要求的。