关于.net table

smm756446886 2010-08-12 01:54:09
这是table动态显示数据库数据代码
<asp:Repeater ID="LoadServiceInfo" runat="server" >
<ItemTemplate>
<tr onclick="c1(this)">
<td id="td1" onclick="getIp('td1') ">
<%#DataBinder.Eval(Container.DataItem, "ip")%></td>
<td id="td2" onclick="getName('td2')">
<%#DataBinder.Eval(Container.DataItem, "servername")%> </td>
</tr>
</ItemTemplate>
</asp:Repeater>
这是javascript代码
<script language=javascript>
var selectedTr = null;
function c1(obj) {
obj.style.backgroundColor = 'white'; //把点到的那一行变希望的颜色;
if (selectedTr != null) selectedTr.style.removeAttribute("backgroundColor");
if (selectedTr == obj) selectedTr = null; //加上此句,以控制点击变白,再点击反灰
else selectedTr = obj;
}

function getIp(id) {
document.getElementById('txtIP').innerText = document.getElementById(id).innerHTML;

}
function getName(name) {
document.getElementById('txtServerName').innerText = document.getElementById (name).innerHTML;
}
这是textbox代码
<p style="text-align: center">
<asp:Label ID="Label2" runat="server" Text="服务器地址"></asp:Label>
  
<asp:TextBox ID="txtIP" runat="server" Width="207px"></asp:TextBox>
</p>
<p class="style1">
<asp:Label ID="Label3" runat="server" Text="服务器名称"></asp:Label>
  
<asp:TextBox ID="txtServerName" runat="server" Width="207px"></asp:TextBox>
</p>

我想实现点任意行。。 这行里的数据在textbox中显示出来。。 请各位大哥大姐帮我改下代码 谢谢了。。
...全文
193 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-08-12
  • 打赏
  • 举报
回复
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
TextBox textBox = e.Item.FindControl("TextBox1") as TextBox;
Button btn = e.Item.FindControl("btn") as Button;
btn.OnClientClick = string.Format("document.getElementById('{0}').value = document.getElementById('{1}').value;",textBox1.ClientID,textBox.ClientID);

}
}
onClick="test(this.innerHTML)"
this.parentNode.parentNode.parentNode.childNodes[0].innerText
IHandler 2010-08-12
  • 打赏
  • 举报
回复

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Rpt.aspx.cs" Inherits="Rpt" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="100%">
<asp:Repeater ID="Repeater1" runat="server"
onitemdatabound="Repeater1_ItemDataBound">
<ItemTemplate>
<tr id="dataListRow" runat="server">
<td>
<%# Eval("Name") %>
</td>
<td>
<%# Eval("Age") %>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</div>
<div>
Name:
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
Age:<asp:TextBox ID="txtAge" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>


using System;
using System.Web.UI.WebControls;
using System.Data;
using System.Web.UI.HtmlControls;

public partial class Rpt : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Name"));
dt.Columns.Add(new DataColumn("Age"));
dt.Rows.Add(new object[]{"China","1000"});
dt.Rows.Add(new object[]{"USA","500"});
Repeater1.DataSource = dt;
Repeater1.DataBind();
}
}
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem ||
e.Item.ItemType == ListItemType.Item)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
HtmlTableRow tr = (HtmlTableRow)e.Item.FindControl("dataListRow");
tr.Attributes.Add("onclick",
String.Format("document.getElementById('txtName').value='{0}';document.getElementById('txtAge').value='{1}';",
drv["Name"].ToString(), drv["Age"].ToString()));
}
}
}
tptptp00 2010-08-12
  • 打赏
  • 举报
回复

function c1(obj) {
obj.style.backgroundColor = 'white'; //把点到的那一行变希望的颜色;
if (selectedTr != null) selectedTr.style.removeAttribute("backgroundColor");
if (selectedTr == obj) selectedTr = null; //加上此句,以控制点击变白,再点击反灰
else
selectedTr = obj;

$("#txtIP").val($(obj).children().eq(0).html());
$("txtServerName").val($(obj).children().eq(1).html());
}

yasire 2010-08-12
  • 打赏
  • 举报
回复
第一列可以加上radio来确定是否选择或者选中。
选中之后,用js读取table(就是repeat)的某列的值,然后显示到textbox里。
myhope88 2010-08-12
  • 打赏
  • 举报
回复
你可以用jquery获取这行里面的数据出来赋值就行了,或者在每行放个隐藏的关键ID,然后ajax请求,把返回的数据放到textbox中
闲游四疯 2010-08-12
  • 打赏
  • 举报
回复
ItemTemplate 是循环输出 所以不要写ID什么的 写了也会变掉
方法不要传ID 直接传 getIp(this) 这样子 传对象过去
然后是innerHTML 不是innerText
点击那边变色完循环tr节点 把背景色全清空 然后当前行再更换背景色

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧