动态数据源怎么办啊?
if(flag)
{
mySqlDataAdapter = new SqlDataAdapter("SELECT '<a href=\"./Interaction.aspx?Type='+TopicId+'\" title=\"'+Introdution+'\">'+TopicName+'</a>' AS '分类', ThreadCount AS '发帖总数', ReThreadCount AS '回帖总数' FROM Interaction_Topics", myConn);
}
else
{
mySqlDataAdapter = new SqlDataAdapter("SELECT '<a href=\"./Thread.aspx?Id='+Convert(varchar(10), Id)+'\">'+[Title]+'</a>' AS '标题', ChildCount AS '回复', HitCount AS '点击', Submit_Time AS '发表时间', User_Id AS '作者' FROM Threads WHERE Layer=0 AND Topic_Id=" + Id + " ORDER BY '发表时间' DESC", myConn);
}
myDataSet = new DataSet();
mySqlDataAdapter.Fill(myDataSet, "tb_Temp");
gView_DB.DataSource = myDataSet.Tables["tb_Temp"].DefaultView;
gView_DB.DataBind();
13 个解决方案
#1
我感觉这个问题可以用两个panel来放置2个gridview
通过条件来判断应该显示哪个gridview比较好。而不是去判断邦定哪个数据源。。
通过条件来判断应该显示哪个gridview比较好。而不是去判断邦定哪个数据源。。
#2
加一个script
function openwindow(url)
{
var top,left,width,height;
top=screen.height*0.125;
left=screen.width*0.125;
width=screen.width*0.75;
height=screen.height*0.75;
window.open(url,"_blank","status=no,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no,width="+width+",height="+height+",top="+top+",left="+left);
}
模板列中
<asp:TemplateField HeaderText="XXX">
<ItemTemplate>
<a href="#" onclick="openwindow('../Group/GroupInfoView.aspx?para=<%# Eval("ID") %>');">
<%# Eval("XXX") %>
</a>
</ItemTemplate>
</asp:TemplateField>
function openwindow(url)
{
var top,left,width,height;
top=screen.height*0.125;
left=screen.width*0.125;
width=screen.width*0.75;
height=screen.height*0.75;
window.open(url,"_blank","status=no,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no,width="+width+",height="+height+",top="+top+",left="+left);
}
模板列中
<asp:TemplateField HeaderText="XXX">
<ItemTemplate>
<a href="#" onclick="openwindow('../Group/GroupInfoView.aspx?para=<%# Eval("ID") %>');">
<%# Eval("XXX") %>
</a>
</ItemTemplate>
</asp:TemplateField>
#3
就算只有一个数据源
mySqlDataAdapter = new SqlDataAdapter("SELECT '<a href=\"./Thread.aspx?Id='+Convert(varchar(10), Id)+'\">'+[Title]+'</a>' AS '标题', ChildCount AS '回复', HitCount AS '点击', Submit_Time AS '发表时间', User_Id AS '作者' FROM Threads WHERE Layer=0 AND Topic_Id=" + Id + " ORDER BY '发表时间' DESC", myConn);
但是有传入参数,所以不能预先设定模板吧?
#4
把GRIDVIEW的列属性改一下enableHTML(好像是这个吧)应该可以
#5
其实还是建议你把该列设置为模板列
#6
在模板列里实现简单~
#7
用事件也可以实现
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string led_id = e.Row.Cells[2].Text;//获取你超链接页面需传的值
LinkButton lb_update = (LinkButton)e.Row.Cells[1].FindControl("Row_Update"); //把需要超链的列模板做为LinkButton,Row_Update是控件名字
string _jsEdit = "showModalDialog('Led_action.aspx?Led_id=" + led_id+" ',null,'dialogWidth:500px;dialogHeight:300px;center:yes;status:no;scroll:no;help:no;resizable:no')"; //javascipt 语句,我的这个是打开子页面的。
lb_update.Attributes.Add("onclick", _jsEdit);
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string led_id = e.Row.Cells[2].Text;//获取你超链接页面需传的值
LinkButton lb_update = (LinkButton)e.Row.Cells[1].FindControl("Row_Update"); //把需要超链的列模板做为LinkButton,Row_Update是控件名字
string _jsEdit = "showModalDialog('Led_action.aspx?Led_id=" + led_id+" ',null,'dialogWidth:500px;dialogHeight:300px;center:yes;status:no;scroll:no;help:no;resizable:no')"; //javascipt 语句,我的这个是打开子页面的。
lb_update.Attributes.Add("onclick", _jsEdit);
}
}
#8
在绑定的时候用判断下 mySqlDataAdapter ==(数据源)?Eval('a'):Eval('b')
#9
使用模板列即可! 模板列里丢个<a>标签,然后用Eval帮顶数据
#10
应该可以解决你的问题了
#11
GridView里面有个HyperLinkField的模板列,就是超级链接了
#12
#13
顶一下
#1
我感觉这个问题可以用两个panel来放置2个gridview
通过条件来判断应该显示哪个gridview比较好。而不是去判断邦定哪个数据源。。
通过条件来判断应该显示哪个gridview比较好。而不是去判断邦定哪个数据源。。
#2
加一个script
function openwindow(url)
{
var top,left,width,height;
top=screen.height*0.125;
left=screen.width*0.125;
width=screen.width*0.75;
height=screen.height*0.75;
window.open(url,"_blank","status=no,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no,width="+width+",height="+height+",top="+top+",left="+left);
}
模板列中
<asp:TemplateField HeaderText="XXX">
<ItemTemplate>
<a href="#" onclick="openwindow('../Group/GroupInfoView.aspx?para=<%# Eval("ID") %>');">
<%# Eval("XXX") %>
</a>
</ItemTemplate>
</asp:TemplateField>
function openwindow(url)
{
var top,left,width,height;
top=screen.height*0.125;
left=screen.width*0.125;
width=screen.width*0.75;
height=screen.height*0.75;
window.open(url,"_blank","status=no,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no,width="+width+",height="+height+",top="+top+",left="+left);
}
模板列中
<asp:TemplateField HeaderText="XXX">
<ItemTemplate>
<a href="#" onclick="openwindow('../Group/GroupInfoView.aspx?para=<%# Eval("ID") %>');">
<%# Eval("XXX") %>
</a>
</ItemTemplate>
</asp:TemplateField>
#3
就算只有一个数据源
mySqlDataAdapter = new SqlDataAdapter("SELECT '<a href=\"./Thread.aspx?Id='+Convert(varchar(10), Id)+'\">'+[Title]+'</a>' AS '标题', ChildCount AS '回复', HitCount AS '点击', Submit_Time AS '发表时间', User_Id AS '作者' FROM Threads WHERE Layer=0 AND Topic_Id=" + Id + " ORDER BY '发表时间' DESC", myConn);
但是有传入参数,所以不能预先设定模板吧?
#4
把GRIDVIEW的列属性改一下enableHTML(好像是这个吧)应该可以
#5
其实还是建议你把该列设置为模板列
#6
在模板列里实现简单~
#7
用事件也可以实现
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string led_id = e.Row.Cells[2].Text;//获取你超链接页面需传的值
LinkButton lb_update = (LinkButton)e.Row.Cells[1].FindControl("Row_Update"); //把需要超链的列模板做为LinkButton,Row_Update是控件名字
string _jsEdit = "showModalDialog('Led_action.aspx?Led_id=" + led_id+" ',null,'dialogWidth:500px;dialogHeight:300px;center:yes;status:no;scroll:no;help:no;resizable:no')"; //javascipt 语句,我的这个是打开子页面的。
lb_update.Attributes.Add("onclick", _jsEdit);
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string led_id = e.Row.Cells[2].Text;//获取你超链接页面需传的值
LinkButton lb_update = (LinkButton)e.Row.Cells[1].FindControl("Row_Update"); //把需要超链的列模板做为LinkButton,Row_Update是控件名字
string _jsEdit = "showModalDialog('Led_action.aspx?Led_id=" + led_id+" ',null,'dialogWidth:500px;dialogHeight:300px;center:yes;status:no;scroll:no;help:no;resizable:no')"; //javascipt 语句,我的这个是打开子页面的。
lb_update.Attributes.Add("onclick", _jsEdit);
}
}
#8
在绑定的时候用判断下 mySqlDataAdapter ==(数据源)?Eval('a'):Eval('b')
#9
使用模板列即可! 模板列里丢个<a>标签,然后用Eval帮顶数据
#10
应该可以解决你的问题了
#11
GridView里面有个HyperLinkField的模板列,就是超级链接了
#12
#13
顶一下