关于GridView控件的问题

wukehong5000 2010-11-04 11:15:06
这次是做音乐网站,我把自己的思路先写一下。
数据库有个一个关于音乐的表,字段有:歌名(主键)、歌手、歌词以及url

gridview控件 有歌名、歌手、歌词三个字段,编辑列里面添加了HyperLinkField控件,改成试听,这个控件应该要写事件方法的,(先获取这个行的值,查询数据库得到url,并且传给播放器)

问题是:添加HyperLinkField控件,事件怎么写?

我还试过一个方法,就是编辑列,添加一个TemplateField,然后在编辑模版里面添加LinkButton,这样可以解决双击事件问题,但是获取行ID的问题就出来了。。

希望有高手解惑。。。帐号新申请的。。没那么多分数,很抱歉啊!
...全文
64 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
熙风 2010-11-04
  • 打赏
  • 举报
回复
<asp:TemplateColumn HeaderText="试听">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false" CommandArgument='<%# Eval("ID") %>'
Text="试听"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>



在后台事件RowCommand(object source, DataGridCommandEventArgs e)
{
int ID=e.CommandArgument;
}
wukehong5000 2010-11-04
  • 打赏
  • 举报
回复
就是一般的音乐网站,有试听 下载等功能
参见百度的mp3搜索

感谢大家提供方法。我先试试看
MarsHands 2010-11-04
  • 打赏
  • 举报
回复

//前台源码
//Gridviewl里的编辑列

<asp:TemplateField FooterText="" HeaderText="">
<ItemTemplate>
<a href="#" onclick="show(<%#Eval("user_ID").ToString() %>);">
<%#GetName(Eval("user_ID").ToString()) %></a>
</ItemTemplate>
<HeaderStyle CssClass="gvheader" />
<HeaderStyle Width="60px"></HeaderStyle>
</asp:TemplateField>




//把值传到这个页面,并且打开页面
//前台源码,<head>里写

<script type="text/javascript">
function show(userid) {
var url = "页面名称?userid=" + userid + "&random=" + Math.random();
window.showModalDialog(url, window, 'dialogWidth:1000px;dialogHeight:600px;center:yes;status:no;scroll:yes;help:yes;');
location = location;
}



你给的需求还不够详细。。这个参考吧
  • 打赏
  • 举报
回复
<asp:TemplateColumn HeaderText="试听">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false" CommandArgument='<%# Eval("ID") %>'
Text="试听"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>



在后台事件ItemCommand(object source, DataGridCommandEventArgs e)
里面
e.CommandArgument就是ID

吾非大神 2010-11-04
  • 打赏
  • 举报
回复
现在 gridview 里添加个隐藏列 存放 id

然后 select的时候 一起选出来

点 超链接的时候 通过 e.rowindex 找到 id 就可以了吧。
MarsHands 2010-11-04
  • 打赏
  • 举报
回复
这个用js做吧


wukehong5000 2010-11-04
  • 打赏
  • 举报
回复

protected void LinkButton1_Click(object sender, EventArgs e)
{
LinkButton myB = (LinkButton)sender;
int myIndex = ((GridViewRow)myB.NamingContainer).RowIndex;//获得行号
string strid = GridView1.DataKeys[myIndex].Value.ToString();//获得id
}


我找别的帖子解决问题的。。。不管怎样,谢谢大家咯

111,118

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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