GridView 或DataGrid能不能实现下面的需求: word太难了,用Excel没有任务问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 总是有办法的。比如,虽然初期你不绑定数据,但在gridview里,有一个当数据为空的时候的模板列EmptyDataTemplate。你可以给gridview一个空数据源让它绑定,然后EmptyDataTemplate里面的东西就会显示出来。这样,你就可以在EmptyDataTemplate模版列里去画表格,添加控件,去实现你的功能。就和在外面操作是一样的,只不过,所有这些控件,都需要你去findcontrol。 <asp:GridView ID="GridView1" runat="server" CellPadding="0" ForeColor="#333333" Font-Size="9pt" width="100%" DataKeyNames="id" GridLines="None" AutoGenerateColumns="False" ShowFooter="True" OnRowDataBound="GridView1_RowDataBound" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating"> <FooterStyle BackColor="#5D7B9D" ForeColor="White" Font-Bold="True" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <HeaderStyle BackColor="#CCCCCC" HorizontalAlign="Left" Font-Bold="True" Height="20px" ForeColor="White" /> <Columns> <asp:TemplateField HeaderText="用户名" SortExpression="newstype"> <EditItemTemplate> <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("username") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label6" runat="server" Text='<%# Bind("username") %>'></asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="用户密码" SortExpression="newstype"> <EditItemTemplate> <asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("userpass") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label7" runat="server" Text='<%# Bind("userpass") %>'></asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="公司名称" SortExpression="title"> <EditItemTemplate> <asp:TextBox ID="TextBox7" runat="server" Text='<%# Eval("CompanyName") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label2" runat="server" Text='<%# Bind("CompanyName") %>'></asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> </FooterTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="有效日期" SortExpression="newstype"> <EditItemTemplate> <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("ValidDate") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label5" runat="server" Text='<%# Bind("ValidDate") %>'></asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox ID="TextBox8" runat="server"></asp:TextBox> </FooterTemplate> </asp:TemplateField> <asp:TemplateField SortExpression="id"> <HeaderTemplate> <asp:Button ID="deleButton" runat="server" Text="-删" Width="25px" Height="20px" ForeColor="red" Font-Strikeout="false" OnClick="deleButton_Click" /> </HeaderTemplate> <ItemTemplate> <asp:CheckBox ID="CheckBox" runat="server" /> </ItemTemplate> <FooterTemplate> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="新建" /> </FooterTemplate> </asp:TemplateField> <asp:CommandField ButtonType="Button" ShowEditButton="True" /> </Columns> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <EditRowStyle BackColor="#999999" /> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> </asp:GridView> protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; GridviewDatabind(); } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { TextBox tbUserName = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox5"); TextBox tbUserPass = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox6"); TextBox tbCompanyName = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox7"); TextBox tbValidate = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox4"); string dkvalue = GridView1.DataKeys[e.RowIndex].Value.ToString(); sql ="Update LoginTable_User set username=@UserName,userpass=@UserPass,companyname=@CompanyName,validdate=@ValidDate where Id='"+dkvalue+"'"; conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 50); cmd.Parameters["@UserName"].Value = tbUserName.Text; cmd.Parameters.Add("@UserPass", SqlDbType.VarChar, 50); cmd.Parameters["@UserPass"].Value = tbUserPass.Text; cmd.Parameters.Add("@CompanyName", SqlDbType.VarChar, 100); cmd.Parameters["@CompanyName"].Value = tbCompanyName.Text; cmd.Parameters.Add("@ValidDate", SqlDbType.DateTime, 8); if (tbValidate.Text.Length > 0) { cmd.Parameters["@ValidDate"].Value = Convert.ToDateTime(tbValidate.Text); } else { cmd.Parameters["@ValidDate"].Value = DBNull.Value; } cmd.ExecuteNonQuery(); conn.Close(); GridView1.EditIndex = -1; GridviewDatabind(); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; GridviewDatabind(); } protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { if (GridView1.Rows.Count >= 0) { TextBox inUserName = (TextBox)GridView1.FooterRow.FindControl("TextBox1"); TextBox inUserPass = (TextBox)GridView1.FooterRow.FindControl("TextBox2"); TextBox inCompName = (TextBox)GridView1.FooterRow.FindControl("TextBox3"); TextBox inValidDate = (TextBox)GridView1.FooterRow.FindControl("TextBox8"); try { string sql = "Insert into LoginTable_User (username,userpass,companyname,validdate) values(@UserName,@UserPass,@CompanyName,@ValidDate)"; conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 50); cmd.Parameters["@UserName"].Value = inUserName.Text; cmd.Parameters.Add("@UserPass", SqlDbType.VarChar, 50); cmd.Parameters["@UserPass"].Value = inUserPass.Text; cmd.Parameters.Add("@CompanyName", SqlDbType.VarChar, 100); cmd.Parameters["@CompanyName"].Value = inCompName.Text; cmd.Parameters.Add("@ValidDate", SqlDbType.DateTime, 8); if (inValidDate.Text.Length > 0) { cmd.Parameters["@ValidDate"].Value = Convert.ToDateTime(inValidDate.Text); } else { cmd.Parameters["@ValidDate"].Value = DBNull.Value; } cmd.ExecuteNonQuery(); conn.Close(); GridView1.EditIndex = -1; GridviewDatabind(); } catch (Exception ex) { throw new Exception(ex.Message); } finally { conn.Close(); } } Repeater绑定数据的问题 aspx 提示文本框字节数? [图] ASP.NET验证控件的运行 利用AjaxPro插入数据问题? asp.net 移动web 一个aspx文件中多个form如何切换 请问以下关于这几种网址形式怎么实现 求助<div>……</div> 每个人都会遇到的问题 (顶者有分) iis 乱码,请高手指点,尝试了N种网上的方法,还是不行!!! 飞印远程打印到底如何配置,求截图 服务器错误 分析器错误 PageHead是用户自定义控件 请问怎样能从主页面aspx中获得用户控件ascx的属性值?我好急,帮帮忙?
比如,虽然初期你不绑定数据,但在gridview里,有一个当数据为空的时候的模板列EmptyDataTemplate。
你可以给gridview一个空数据源让它绑定,然后EmptyDataTemplate里面的东西就会显示出来。
这样,你就可以在EmptyDataTemplate模版列里去画表格,添加控件,去实现你的功能。就和在外面操作是一样的,只不过,所有这些控件,都需要你去findcontrol。
runat="server"
CellPadding="0"
ForeColor="#333333"
Font-Size="9pt"
width="100%"
DataKeyNames="id"
GridLines="None"
AutoGenerateColumns="False"
ShowFooter="True"
OnRowDataBound="GridView1_RowDataBound"
OnRowCancelingEdit="GridView1_RowCancelingEdit"
OnRowEditing="GridView1_RowEditing"
OnRowUpdating="GridView1_RowUpdating">
<FooterStyle BackColor="#5D7B9D" ForeColor="White" Font-Bold="True" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#CCCCCC" HorizontalAlign="Left" Font-Bold="True" Height="20px" ForeColor="White" />
<Columns>
<asp:TemplateField HeaderText="用户名" SortExpression="newstype">
<EditItemTemplate>
<asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("username") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label6" runat="server" Text='<%# Bind("username") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="用户密码" SortExpression="newstype">
<EditItemTemplate>
<asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("userpass") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label7" runat="server" Text='<%# Bind("userpass") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="公司名称" SortExpression="title">
<EditItemTemplate>
<asp:TextBox ID="TextBox7" runat="server" Text='<%# Eval("CompanyName") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("CompanyName") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="有效日期" SortExpression="newstype">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("ValidDate") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Bind("ValidDate") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBox8" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="id">
<HeaderTemplate>
<asp:Button ID="deleButton" runat="server" Text="-删" Width="25px" Height="20px" ForeColor="red" Font-Strikeout="false" OnClick="deleButton_Click" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox" runat="server" />
</ItemTemplate>
<FooterTemplate>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="新建" />
</FooterTemplate>
</asp:TemplateField>
<asp:CommandField ButtonType="Button" ShowEditButton="True" />
</Columns>
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
{
GridView1.EditIndex = e.NewEditIndex;
GridviewDatabind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
TextBox tbUserName = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox5");
TextBox tbUserPass = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox6");
TextBox tbCompanyName = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox7");
TextBox tbValidate = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox4");
string dkvalue = GridView1.DataKeys[e.RowIndex].Value.ToString(); sql ="Update LoginTable_User set username=@UserName,userpass=@UserPass,companyname=@CompanyName,validdate=@ValidDate where Id='"+dkvalue+"'";
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 50);
cmd.Parameters["@UserName"].Value = tbUserName.Text;
cmd.Parameters.Add("@UserPass", SqlDbType.VarChar, 50);
cmd.Parameters["@UserPass"].Value = tbUserPass.Text;
cmd.Parameters.Add("@CompanyName", SqlDbType.VarChar, 100);
cmd.Parameters["@CompanyName"].Value = tbCompanyName.Text;
cmd.Parameters.Add("@ValidDate", SqlDbType.DateTime, 8);
if (tbValidate.Text.Length > 0)
{
cmd.Parameters["@ValidDate"].Value = Convert.ToDateTime(tbValidate.Text);
}
else
{
cmd.Parameters["@ValidDate"].Value = DBNull.Value;
}
cmd.ExecuteNonQuery();
conn.Close();
GridView1.EditIndex = -1;
GridviewDatabind();
} protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
GridviewDatabind();
}
protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
if (GridView1.Rows.Count >= 0)
{
TextBox inUserName = (TextBox)GridView1.FooterRow.FindControl("TextBox1");
TextBox inUserPass = (TextBox)GridView1.FooterRow.FindControl("TextBox2");
TextBox inCompName = (TextBox)GridView1.FooterRow.FindControl("TextBox3");
TextBox inValidDate = (TextBox)GridView1.FooterRow.FindControl("TextBox8");
try
{
string sql = "Insert into LoginTable_User (username,userpass,companyname,validdate) values(@UserName,@UserPass,@CompanyName,@ValidDate)";
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 50);
cmd.Parameters["@UserName"].Value = inUserName.Text;
cmd.Parameters.Add("@UserPass", SqlDbType.VarChar, 50);
cmd.Parameters["@UserPass"].Value = inUserPass.Text;
cmd.Parameters.Add("@CompanyName", SqlDbType.VarChar, 100);
cmd.Parameters["@CompanyName"].Value = inCompName.Text;
cmd.Parameters.Add("@ValidDate", SqlDbType.DateTime, 8);
if (inValidDate.Text.Length > 0)
{
cmd.Parameters["@ValidDate"].Value = Convert.ToDateTime(inValidDate.Text);
}
else
{
cmd.Parameters["@ValidDate"].Value = DBNull.Value;
}
cmd.ExecuteNonQuery();
conn.Close();
GridView1.EditIndex = -1;
GridviewDatabind();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
conn.Close();
}
}