今天晚上必须要解决的问题,请大家一定帮帮我!

god_xp 2008-04-06 08:52:14
我有一个DataGridView控件,里面已经填充好数据,现在我需要通过点击控件中的数据(就是做成超连接的形式),然后赋予到一个文本框,假定名为TextBox1,具体应该怎么做呢?关键是如何将DataGridView中的数据做成可点击的超连接的形式呢?
...全文
385 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
honey_tangyuan 2008-04-07
  • 打赏
  • 举报
回复
可以把数据放到数据集里,在数据集里可以设置某一列的链接属性,然后把数据集绑定到GrideView
flameearth 2008-04-07
  • 打赏
  • 举报
回复




god_xp 2008-04-06
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 world327 的回复:]
可以在gridview 中添加模板列,模板列中添加超链接控件,绑定这个控件,就可以了。
也可以用javascript实现,加个超链接,链接中写个onclick事件,出发事件,将值付给textbox就可以了
[/Quote]
第2种方法,我想已经实现了,你说的第一种方法,我知道可以添加超链接字段,但是这个字段能绑定textbox控件吗?或者说,如何给textbox赋值呢
world327 2008-04-06
  • 打赏
  • 举报
回复
可以在gridview 中添加模板列,模板列中添加超链接控件,绑定这个控件,就可以了。
也可以用javascript实现,加个超链接,链接中写个onclick事件,出发事件,将值付给textbox就可以了
oec2003 2008-04-06
  • 打赏
  • 举报
回复
Eval 是用于绑定数据用到

也可以在存储过程中将 要实现超链接的列 写成超链接形式,然后在gridview中将该列转换为模板列即可
boblaw 2008-04-06
  • 打赏
  • 举报
回复
Eval是ASP.NET的数据绑定表达式。
如果你有装MSDN,可以参考
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_aspnetcon/html/14cdd57d-0f82-4667-b503-73e1a96f136a.htm
也可以在baidu或google中搜索"ASP.NET数据绑定表达式"
god_xp 2008-04-06
  • 打赏
  • 举报
回复
我想你解释的非常清楚了,JS代码我也能看的懂,我最不明白的就是“Eval”,这是个.net的函数吗?
boblaw 2008-04-06
  • 打赏
  • 举报
回复
用到的三个数据绑定表达式解释如下(我使用的是Account列,你要视你的情况做修改):

href="javascript:getCellValue('<%#Eval("Account") %>')"
-----------
这个是构造javascript代码,绑定Account做为getCellValue的参数

id='<%# Eval("Account","AccountHref{0}") %>'>
-----------
这个是设置<a>标记的ID,javascript是通过id来找到某个<a>标记并获得它的innerHTML值的。
ID必须是惟一的,这里我假定Account是一个主键列或者惟一列,假如Account的值为god_xp,那么<a>的ID就是"AccountHrefgod_xp"
之所以加个AccountHref前缀,是为了防止页面中还有其他的同ID的HTML标记,没有其他意思,你可以使用任何的前缀,即使不使用前缀也行(前提是要保证ID是唯一的)。

<%# Eval("Account") %>
---------------
这个是设置<a>标记在客户端显示的内容,也就是javascript中要获取的值.
god_xp 2008-04-06
  • 打赏
  • 举报
回复
不过这句我没看明白
<%# Eval("Account","AccountHref{0}") %>'>
Eval是取值的明明吗?AccountHref{0}又是什么含义?
god_xp 2008-04-06
  • 打赏
  • 举报
回复
感谢黑马王子!可行
boblaw 2008-04-06
  • 打赏
  • 举报
回复
参考我在16楼的代码,正是你要的效果
god_xp 2008-04-06
  • 打赏
  • 举报
回复
而且,这样会把页面转到另一个页面,而我是先在同一个页面的textbox赋值
god_xp 2008-04-06
  • 打赏
  • 举报
回复
<a href=' <%#Eval("datafield","aa.aspx?text={0}")%'> 这里加你要链接的对象(按钮\textbox..) </a>
请问下,你们都说text={0},这个表示传参,那么这个{0},难道是这个字段的值?
howkeee 2008-04-06
  • 打赏
  • 举报
回复
先编辑列!
god_xp 2008-04-06
  • 打赏
  • 举报
回复
感谢楼上的弟兄,我马上理解下
hanjiaming2008 2008-04-06
  • 打赏
  • 举报
回复
<a href=' <%#Eval("datafield","aa.aspx?text={0}")%'> 这里加你要链接的对象(按钮\textbox..) </a>
boblaw 2008-04-06
  • 打赏
  • 举报
回复
另外,我使用了一个DataSource1,绑定的列是Account,你测试时要试你的情况来做修改.
boblaw 2008-04-06
  • 打赏
  • 举报
回复
你说的TextBox1,我这里使用的是TextBox2.
当点击链接时,使用javascript把链接的值放入TextBox2.
boblaw 2008-04-06
  • 打赏
  • 举报
回复
参考下面这个示例,测试通过

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<a href="javascript:getCellValue('<%#Eval("Account") %>')" id='<%# Eval("Account","AccountHref{0}") %>'><%# Eval("Account") %></a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<script language="javascript" type="text/javascript">
function getCellValue(accId)
{
alert(document.getElementById("AccountHref"+accId).innerHTML);
document.getElementById('<%= TextBox2.ClientID %>').value=document.getElementById("AccountHref"+accId).innerHTML;
}
</script>
JayOwen 2008-04-06
  • 打赏
  • 举报
回复
上面有几位兄弟回答我觉得既简单又适用!你能不能再把你的意思说清楚一点儿 大家才好替你出主意
加载更多回复(14)

62,252

社区成员

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

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

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

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