asp.net 将 gridview 数据复制到文本框而无需回发 (vb)
asp.net copy gridview data to textboxes without postback (vb)
我在 asp.net 应用程序中有一个 gridview,数据来自 MySQL 数据库。
每个gridview行有超过50个字段,其中大部分是隐藏的,所以gridview上实际显示的只有5个。
当您点击任意行时,gridview 上该行所有列的数据将被复制到 gridview 下方的各种文本框中。
一切正常,但每次我点击一行时都会出现,有一个回发到服务器,这使得显示下面数据的过程相当缓慢。
我想将 gridview 行上每个单元格的数据直接复制到相应的文本框,而无需进一步的服务器干预。由于我需要的所有数据都在 gridview 上(只是隐藏),所以我看不出每次单击一行时都必须检查服务器的意义。
如何将数据复制到文本框而不必每次都进行回发?
这是我用来将数据从 gridview 复制到文本框的代码(部分):
Protected Sub Gridview1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GridView1.SelectedIndexChanged
txtOD_OCC.Text = GridView1.SelectedRow.Cells(17).Text.ToString()
txtOC_OCC.Text = GridView1.SelectedRow.Cells(18).Text.ToString()
etc....
End Sub
您应该使用 Javascrip(在我的示例 JQuery 中)获取客户端中的值并将其放入文本框中:
gridView 有一个 ID 和一个属性 ClientIDMode,这导致 ID 在渲染中不会改变:
<asp:GridView ID="grdEmployees" ClientIDMode="Static" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:BoundField HeaderText="Name" DataField="Name" />
<asp:BoundField HeaderText="LastName" DataField="LastName"/>
<asp:BoundField HeaderText="Phone" DataField="Phone"/>
</Columns>
</asp:GridView>
之后,添加下一个JQuery功能:
<script type="text/javascript">
$(document).ready(function () {
$("#grdEmployees tr").click(function () {
$(this).find('td').each(function (e) {
alert($(this).text());
});
});
});
</script>
此 javascript 将事件添加到“#grdEmployees tr”中的点击(当点击 TR -row- 时)。当此事件触发时,使用 javascript 获取网格视图中的每个 TD -列-(呈现为 table)并显示值。
我在 asp.net 应用程序中有一个 gridview,数据来自 MySQL 数据库。
每个gridview行有超过50个字段,其中大部分是隐藏的,所以gridview上实际显示的只有5个。
当您点击任意行时,gridview 上该行所有列的数据将被复制到 gridview 下方的各种文本框中。
一切正常,但每次我点击一行时都会出现,有一个回发到服务器,这使得显示下面数据的过程相当缓慢。
我想将 gridview 行上每个单元格的数据直接复制到相应的文本框,而无需进一步的服务器干预。由于我需要的所有数据都在 gridview 上(只是隐藏),所以我看不出每次单击一行时都必须检查服务器的意义。
如何将数据复制到文本框而不必每次都进行回发?
这是我用来将数据从 gridview 复制到文本框的代码(部分):
Protected Sub Gridview1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GridView1.SelectedIndexChanged
txtOD_OCC.Text = GridView1.SelectedRow.Cells(17).Text.ToString()
txtOC_OCC.Text = GridView1.SelectedRow.Cells(18).Text.ToString()
etc....
End Sub
您应该使用 Javascrip(在我的示例 JQuery 中)获取客户端中的值并将其放入文本框中:
gridView 有一个 ID 和一个属性 ClientIDMode,这导致 ID 在渲染中不会改变:
<asp:GridView ID="grdEmployees" ClientIDMode="Static" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:BoundField HeaderText="Name" DataField="Name" />
<asp:BoundField HeaderText="LastName" DataField="LastName"/>
<asp:BoundField HeaderText="Phone" DataField="Phone"/>
</Columns>
</asp:GridView>
之后,添加下一个JQuery功能:
<script type="text/javascript">
$(document).ready(function () {
$("#grdEmployees tr").click(function () {
$(this).find('td').each(function (e) {
alert($(this).text());
});
});
});
</script>
此 javascript 将事件添加到“#grdEmployees tr”中的点击(当点击 TR -row- 时)。当此事件触发时,使用 javascript 获取网格视图中的每个 TD -列-(呈现为 table)并显示值。