[求助]如何在GridView控件查找不到任何数据的情况下依然显示表头和利用CommandField生成的编辑按钮 各位大虾,请问如何在GridView控件查找不到任何数据的情况下依然显示表头和利用CommandField生成的编辑按钮。我想实现的功能是,在GridView查不到任何数据的情况下,依然可以显示表头,还有CommandField生成的编辑按钮。再点击“编辑”后,可以增加新的数据多谢,我在线等!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关注。我现在在用GridView,也是这样,空行时连头也不见了,就只有个可以设置空行的属性,有个鸟用啊。 你可以用<asp:GridView ID="GridView1" runat="server"><EmptyDataTemplate> 这里加你的代码</EmptyDataTemplate></asp:GridView> 这个问题网上问了很多次了.解决方法是帮定一个datatable .呵呵。救急呀...显示不了的.除非绑定个空的datatable. DataTable currentTable = new DataTable(); DataColumn id = new DataColumn(); id.ColumnName = "ID"; DataColumn jobno = new DataColumn(); jobno.ColumnName = "JobNo"; currentTable.Columns.Add(jobno); currentTable.Columns.Add(id); DataRow row = currentTable.NewRow(); row["JobNo"] = ""; currentTable.Rows.Add(row); GridView1.DataSource = currentTable; GridView1.DataBind();这样就可以了。.......................... 请问应该加什么代码?我需要一个CommandFiled生成的编辑按钮,2列数据,姓名和性别? antiking(Q狼E行) 大大的我看的不是很明白,我原来的是DataSourceID="SqlDataSource2",现在GridView1.DataSource = currentTable了,如何去连接数据库?请指教,多谢 你可能是在绑定的时候如下:if DataTable.Rows.Count <> 0 then绑定end if所以出现没有数据的时候什么都没有了,其实没有必要,没有数据的时候也直接绑定,这样它自然就显示出表头了. SqlDataSource2.DataSource=datatable;这个你可以看懂吧. 我的GridView是自己绑定的,每一列都是用BoundField绑定到相应的表的列上的。例如<asp:BoundField DataField="member" HeaderText="成员姓名" /> antiking(Q狼E行) 大大,我还是很晕 对呀.我知道你是自动绑定的.我的意思是你按绑定显示的列做个datatable.插入空数据当你查询时数据为空就绑定datatable. antiking(Q狼E行)大大,晕完了,你能给个详细的代码吗?多谢啊 Cate表两个字段:id自动增加,Title为输入,例子<%@ Page Language="VB" Debug=true Trace="true"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> Protected Sub add_Click(ByVal sender As Object, ByVal e As System.EventArgs) AccessDataSource1.InsertCommand = "INSERT INTO Cate (Title) VALUES (@Tt)" AccessDataSource1.InsertParameters.Add("@Tt", CType(GridView1.Controls(0).Controls(0).Controls(0).FindControl("AddTitle"), TextBox).Text) AccessDataSource1.Insert() End Sub</script><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"><title>无标题页</title></head><body><form id="form1" runat="server"><asp:GridView ShowFooter=true ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="AccessDataSource1"><Columns><asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"SortExpression="id" /><asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /></Columns><EmptyDataTemplate> <asp:TextBox ID=AddTitle runat=server></asp:TextBox> <asp:button ID=add runat=server Text=add OnClick="add_Click" /></EmptyDataTemplate></asp:GridView><asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Fav.mdb"SelectCommand="SELECT [id], [Title] FROM [Cate]" > </asp:AccessDataSource> </form></body></html> 还有个方法一般人我不告诉他......select top 1 字段1='',字段2='' from table.这样也可以的。......能看懂么.把这个跟AccessDataSource1绑定......... net_lover(孟子E章) 大大的方法我看了,很接近我的目标了,不过加不了数据,提示要声明@Tt antiking(Q狼E行) 大大,还是给我个完整的源代码可以吗?我晕的厉害,不知道怎么用,你的意思我理解了 SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["connectionString"]); protected void Page_Load(object sender, EventArgs e) { SqlDataSource1.ConnectionString = conn.ConnectionString ; string sql = "select top 1 jobno='',jobfixno='' from jobse"; sql2 = "select * from jobse where jobno='" + TextBox.Text + "'"; SqlDataAdapter myda = new SqlDataAdapter(sql2.conn); conn.Open(); DataTable dt = new DataTable(); myda.Fill(dt); if (dt.Rows.Count > 0) { SqlDataSource1.SelectCommand = sql2; } else { SqlDataSource1.SelectCommand = sql1; } conn.Close(); } 上面的代码是调试过的。数据库Aeescc测试的。建立一个 Access表,直接拷贝代码即可 同时插入或查询100万条数据,用什么方法? IList<T>的排序问题 什么样的情况会触发session_end事件 求ASP.NET(c#) DataList或Repeater的数字分页 一个正则表达式,里面包含中文和其他字符,这个正则怎么写呢 关于投票系统 关于支持问题? 在Global里面定义一个dataset全局变量,出错,帮忙看看?~ asp.net设计界面框架及布局的思想和实现 ---来者有分 为什么会不能改变DataGrid的SelectedIndex的背景色? xp 没有frontpage 2000 求救!!! asp.net中Attributes怎么使用,大家解释下
我现在在用GridView,也是这样,空行时连头也不见了,就只有个可以设置空行的属性,有个鸟用啊。
<asp:GridView ID="GridView1" runat="server">
<EmptyDataTemplate>
这里加你的代码
</EmptyDataTemplate>
</asp:GridView>
DataTable currentTable = new DataTable();
DataColumn id = new DataColumn();
id.ColumnName = "ID";
DataColumn jobno = new DataColumn();
jobno.ColumnName = "JobNo";
currentTable.Columns.Add(jobno);
currentTable.Columns.Add(id);
DataRow row = currentTable.NewRow();
row["JobNo"] = "";
currentTable.Rows.Add(row);
GridView1.DataSource = currentTable;
GridView1.DataBind();
这样就可以了。..........................
我需要一个CommandFiled生成的编辑按钮,2列数据,姓名和性别?
if DataTable.Rows.Count <> 0 then
绑定
end if所以出现没有数据的时候什么都没有了,其实没有必要,没有数据的时候也直接绑定,这样它自然就显示出表头了.
这个你可以看懂吧.
<asp:BoundField DataField="member" HeaderText="成员姓名" />
Protected Sub add_Click(ByVal sender As Object, ByVal e As System.EventArgs)
AccessDataSource1.InsertCommand = "INSERT INTO Cate (Title) VALUES (@Tt)"
AccessDataSource1.InsertParameters.Add("@Tt", CType(GridView1.Controls(0).Controls(0).Controls(0).FindControl("AddTitle"), TextBox).Text)
AccessDataSource1.Insert()
End Sub
</script><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server"><asp:GridView ShowFooter=true ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="AccessDataSource1">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
</Columns>
<EmptyDataTemplate>
<asp:TextBox ID=AddTitle runat=server></asp:TextBox>
<asp:button ID=add runat=server Text=add OnClick="add_Click" />
</EmptyDataTemplate>
</asp:GridView>
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Fav.mdb"
SelectCommand="SELECT [id], [Title] FROM [Cate]" > </asp:AccessDataSource>
</form>
</body>
</html>
select top 1 字段1='',字段2='' from table.
这样也可以的。......能看懂么.把这个跟AccessDataSource1绑定.........
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource1.ConnectionString = conn.ConnectionString ;
string sql = "select top 1 jobno='',jobfixno='' from jobse";
sql2 = "select * from jobse where jobno='" + TextBox.Text + "'";
SqlDataAdapter myda = new SqlDataAdapter(sql2.conn);
conn.Open();
DataTable dt = new DataTable();
myda.Fill(dt);
if (dt.Rows.Count > 0)
{
SqlDataSource1.SelectCommand = sql2;
}
else
{
SqlDataSource1.SelectCommand = sql1;
}
conn.Close();
}