我有一个网格和表格。在网格中我有结束日期字段。我想在选择行时设置表单的结束日期字段网格的结束日期。我可以设置文本公司名称字段。但我无法设定结束日期。我不明白为什么会这样。谢谢你。
我的表单数据如下:
<div class="control-group">
<label class="control-label">Başlama / Bitiş Tarihi</label>
<div class="controls">
<iskurDateTimeBoxes:IskurDateBox ID="dtGirisTarih" runat="server" />
<iskurDateTimeBoxes:IskurDateBox ID="dtCikisTarih" runat="server" clientidmode="static"/>
</div>
</div>
我的脚本如下:
function callme(e) {
var tds = e.parentNode.parentNode.getElementsByTagName('td');
document.getElementById('txtFirmaAdi').value = tds[2].innerHTML.trim();
document.getElementById('dtCikisTarih').value = tds[7].innerHTML.trim();
}
在formaspx文件中我的代码如下:
<iskurControls:IskurGridView runat="server"
ID="ctlGridSgkTecrube"
AutoGenerateColumns="False"
EmptyDataText="Tecrübe Bilginiz Bulunmamaktadır."
EnableViewState="true"
CssClass="table table-bordered table-condensed text-small">
<Columns>
<asp:TemplateField HeaderText="Seç">
<ItemTemplate>
<asp:Button ID="btnAktar" runat="server" Text="Aktar" CommandName="AktarRow" class = "inp" OnClientClick="return callme(this)" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ISYERISICILNO" HeaderText="İşyeri Sicil No" >
<HeaderStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="ISYERIADI" HeaderText="İşyeri Adı" >
<HeaderStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="MESLEKKODU" HeaderText="Meslek Kodu">
<HeaderStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="MESLEK" HeaderText="Meslek">
<HeaderStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="SURE" HeaderText="Süre">
<HeaderStyle HorizontalAlign="Right" />
</asp:BoundField>
<asp:BoundField DataField="BASLANGICTARIHI" HeaderText="Baş Tar">
<HeaderStyle HorizontalAlign="Right" />
</asp:BoundField>
<asp:BoundField DataField="BITISTARIHI" HeaderText="Bit Tar">
<HeaderStyle HorizontalAlign="Right" />
</asp:BoundField>
</Columns>
<PagerStyle CssClass="grid-PagerStyle"></PagerStyle>
<SelectedRowStyle CssClass="grid-SelectedRowStyle"></SelectedRowStyle>
<HeaderStyle CssClass="grid-HeaderStyle"></HeaderStyle>
<EditRowStyle CssClass="grid-EditRowStyle"></EditRowStyle>
<AlternatingRowStyle CssClass="grid-AlternatingRowStyle"></AlternatingRowStyle>
<FooterStyle CssClass="grid-FooterStyle"></FooterStyle>
<RowStyle CssClass="grid-RowStyle"></RowStyle>
<EmptyDataRowStyle CssClass="grid-EmptyRow" />
</iskurControls:IskurGridView>
如上所述,您可以使用这种方法从一行获取/抓取控件:
所以,说出这个标记:
<asp:GridView ID="GVHotels" runat="server" AutoGenerateColumns="False"
DataKeyNames="ID" CssClass="table table-hover"
Width="45%">
<Columns>
<asp:BoundField DataField="FirstName" HeaderText="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="LastName" />
<asp:BoundField DataField="City" HeaderText="City" />
<asp:BoundField DataField="HotelName" HeaderText="Hotel" />
<asp:BoundField DataField="Description" HeaderText="Description" />
<asp:BoundField DataField="BookingDate" HeaderText="Booking date"
DataFormatString="{0:d}" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="cmdEdit" runat="server" Text="Edit"
CssClass="btn"
OnClientClick="myedit(this);return false;"
/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<h3>Hotel</h3>
<asp:TextBox ID="txtHotel" runat="server" ClientIDMode="Static"></asp:TextBox>
<h3>booking date</h3>
<asp:TextBox ID="txtBdate" runat="server" ClientIDMode="Static"></asp:TextBox>
<script>
function myedit(btn) {
// get cells collection, NON templated columns
var myrow = btn.closest('tr')
$('#txtHotel').val(myrow.cells[3].innerText)
$('#txtBdate').val(myrow.cells[5].innerText)
}
</script>
要加载的代码:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
LoadGrid
End If
End Sub
Sub LoadGrid()
GVHotels.DataSource = MyRst("SELECT * FROM tblHotelsA
WHERE Active = 1 ORDER BY HotelName")
GVHotels.DataBind()
End Sub
结果是这样的:
因此,从客户端按钮单击,我们获取/抓取该行,然后简单地设置 2 个文本框值(使用 .val())。
我当然假设上面是 jQuery。