高手帮忙看一下 这样的功能asp.net如何实现?
在asp.net里如何实现像winform 中datagrid控件的功能,
可编辑,可批量提交的控件。
给点思路就行 --------------------编程问答-------------------- gridview 控件 --------------------编程问答-------------------- 挺好实现的啊自己动手别什么都好 --------------------编程问答-------------------- ·双线主机 100M/35元/年,免费送数据库(自选MY/MSSQL)
·详情请访问:http://www.515dns.com --------------------编程问答-------------------- 这个问题太泛了.也太基础了,还是先动手试一下或者看看书吧 --------------------编程问答-------------------- gridview --------------------编程问答-------------------- gridview可以实现,楼主找下相关代码吧。 --------------------编程问答-------------------- repeater --------------------编程问答-------------------- 可能几位都错误的理解我的意思了,
我的要求不是用来显示数据,而是用来录入数据并提交数据。这有个网站大家可以去看看他的功能。
http://saas.wsgjp.com.cn/ExternalPortal/Demo.gspx
--------------------编程问答-------------------- 我只用过listview,但是不会有datagrid那么牛B
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="History.aspx.cs" Inherits="History" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>经营历程</title>
<link href="../css/css.css" rel="stylesheet" type="text/css" />
<script type ="text/javascript" >
function hit(id) {
var bid = id.replace("TextBox","Button");
bid = bid.substr(0,bid.length-1) + "1";
var obj = document.getElementById(bid);
obj.click();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<table width="90%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC" class="tab2">
<tr >
<td align="center" background="../images/bgdd.jpg" height="27">时间</td>
<td align="center" background="../images/bgdd.jpg" height="27">内容</td>
<td align="center" background="../images/bgdd.jpg" height="27">备注</td>
<td align="center" background="../images/bgdd.jpg" height="27">操作</td>
</tr>
<asp:ListView ID="ListView1" runat="server" OnItemDeleting="ListView1_ItemDeleting" OnItemInserting="ListView1_ItemInserting" OnItemUpdating="ListView1_ItemUpdating">
<LayoutTemplate>
<tr runat="server" id="itemplaceHolder"></tr>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td bgcolor="#FFFFFF" height="35"><asp:TextBox ID="TextBox1" Width="96%" runat="server" Text='<%# Eval("History_time") %>' onblur="hit(this.id);" ></asp:TextBox></td>
<td bgcolor="#FFFFFF" height="35"><asp:TextBox ID="TextBox2" Width="96%" runat="server" Text='<%# Eval("History_contents") %>' onblur="hit(this.id);"></asp:TextBox></td>
<td bgcolor="#FFFFFF" height="35"><asp:TextBox ID="TextBox3" Width="93%" runat="server" Text='<%# Eval("History_remark") %>' onblur="hit(this.id);" ></asp:TextBox></td>
<td bgcolor="#FFFFFF" height="35">
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/images/del.gif" CommandName="Delete" />
<asp:Button ID="Button1" runat="server" Text="增加" CssClass="Hidden" CommandName="Update" />
</td>
</tr>
</ItemTemplate>
<InsertItemTemplate>
<tr >
<td bgcolor="#FFFFFF" height="35">
<asp:TextBox ID="TextBox1" Width="96%" runat="server" onblur="hit(this.id);" ></asp:TextBox></td>
<td bgcolor="#FFFFFF" height="35">
<asp:TextBox ID="TextBox2" Width="96%" runat="server" onblur="hit(this.id);"></asp:TextBox></td>
<td bgcolor="#FFFFFF" height="35">
<asp:TextBox ID="TextBox3" Width="93%" runat="server" onblur="hit(this.id);" ></asp:TextBox></td>
<td bgcolor="#FFFFFF" height="35"> <asp:Button ID="Button1" runat="server" Text="继续增加" CommandName="Insert" CssClass="Hidden"/>
</td>
</tr>
</InsertItemTemplate>
</asp:ListView>
</table>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="BTsave" runat="server" onclick="Button2_Click" Text="保存" />
<input type="button" value="退出" onclick="javascript:window.close();"/>
</form>
</body>
</html>
--------------------编程问答-------------------- using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class History : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
object roleright = Session["roleright"];
if (roleright == null)
{
Response.Redirect("../Login.aspx");
}
if (!IsPostBack)
{
SqlConnection cn = Conn.SqlConn();
string sql = "select * from History";
SqlDataAdapter adp = new SqlDataAdapter(sql, cn);
DataSet ds = new DataSet();
adp.Fill(ds);
ListView1.DataSource = ds;
this.ListView1.InsertItemPosition = InsertItemPosition.LastItem;
ListView1.DataBind();
Loadlistviewbind();
if(ds.Tables [0].Rows .Count ==0)
listviewbind();
}
}
private void Loadlistviewbind()
{
DataTable dt = new DataTable();
DataColumn dc0 = new DataColumn();
dc0.ColumnName = "History_id";//这是一个虚表的ID
dc0.DataType = typeof(int);
dc0.AutoIncrement = true;
dc0.AutoIncrementSeed = 1;
dc0.AutoIncrementStep = 1;
dc0.AllowDBNull = false;
dt.Columns.Add(dc0);
DataColumn dc1 = new DataColumn();
dc1.ColumnName = "History_time";
dc1.DataType = typeof(string);
dt.Columns.Add(dc1);
DataColumn dc2 = new DataColumn();
dc2.ColumnName = "History_contents";
dc2.DataType = typeof(string);
dt.Columns.Add(dc2);
DataColumn dc3 = new DataColumn();
dc3.ColumnName = "History_remark";
dc3.DataType = typeof(string);
dt.Columns.Add(dc3);
dt.PrimaryKey = new DataColumn[] { dt.Columns["History_id"] };
for (int i = 0; i < ListView1.Items.Count; i++)
{
TextBox tb1 = (TextBox)ListView1.Items[i].FindControl("TextBox1");
TextBox tb2 = (TextBox)ListView1.Items[i].FindControl("TextBox2");
TextBox tb3 = (TextBox)ListView1.Items[i].FindControl("TextBox3");
DataRow dr = dt.NewRow();
dr["History_time"] = tb1.Text;
dr["History_contents"] = tb2.Text;
dr["History_remark"] = tb3.Text;
dt.Rows.Add(dr);
}
ViewState["dt"] = dt;
}
private void listviewbind()
{
DataTable dt = new DataTable();
DataColumn dc0 = new DataColumn();
dc0.ColumnName = "History_id";
dc0.DataType = typeof(int);
dc0.AutoIncrement = true;
dc0.AutoIncrementSeed = 1;
dc0.AutoIncrementStep = 1;
dc0.AllowDBNull = false;
dt.Columns.Add(dc0);
DataColumn dc1 = new DataColumn();
dc1.ColumnName = "History_time";
dc1.DataType = typeof(string);
dt.Columns.Add(dc1);
DataColumn dc2 = new DataColumn();
dc2.ColumnName = "History_contents";
dc2.DataType = typeof(string);
dt.Columns.Add(dc2);
DataColumn dc3 = new DataColumn();
dc3.ColumnName = "History_remark";
dc3.DataType = typeof(string);
dt.Columns.Add(dc3);
dt.PrimaryKey = new DataColumn[] { dt.Columns["History_id"] };//没有这会出错
ViewState["dt"] = dt;
bind();
}
void bind()
{
DataTable dt = (DataTable)ViewState["dt"];
this.ListView1.DataSource = dt;
this.ListView1.DataKeyNames = new string[] { "History_id" };
this.ListView1.InsertItemPosition = InsertItemPosition.LastItem;
this.ListView1.DataBind();
}
protected void ListView1_ItemDeleting(object sender, ListViewDeleteEventArgs e)
{
int i = e.ItemIndex;
DataTable dt = (DataTable)ViewState["dt"];
int id = this.ListView1.DataKeys[i].Value.toints();
if (id == 0)
{
id = i + 1;//存在问题
}
dt.Rows.Find(id).Delete();
bind();
}
protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)
{
DataTable dt = (DataTable)ViewState["dt"];
TextBox tb1 = (TextBox)e.Item.FindControl("TextBox1");
TextBox tb2 = (TextBox)e.Item.FindControl("TextBox2");
TextBox tb3 = (TextBox)e.Item.FindControl("TextBox3");
if (tb1.Text != "" || tb2.Text != "" || tb3.Text != "")
{
dt.Rows.Add(null, tb1.Text, tb2.Text, tb3.Text);
}
bind();
}
protected void ListView1_ItemUpdating(object sender, ListViewUpdateEventArgs e)
{
int i = e.ItemIndex;
DataTable dt = (DataTable)ViewState["dt"];
int id = this.ListView1.DataKeys[i].Value.toints();
if (id == 0)
{
id = i + 1;
}
TextBox tb1 = (TextBox)ListView1.Items[i].FindControl("TextBox1");
TextBox tb2 = (TextBox)ListView1.Items[i].FindControl("TextBox2");
TextBox tb3 = (TextBox)ListView1.Items[i].FindControl("TextBox3");
DataRow dr = dt.Rows.Find(id);
dr["History_time"] = tb1.Text;
dr["History_contents"] = tb2.Text;
dr["History_remark"] = tb3.Text;
dt.AcceptChanges();
bind();
}
protected void Button2_Click(object sender, EventArgs e)
{
DataTable dt = (DataTable)ViewState["dt"];
SqlConnection cn = Conn.SqlConn();
if (dt != null)
{
SqlCommand cmd2 = new SqlCommand("delete from History ", cn);
cmd2.ExecuteNonQuery();
for (int j = 0; j < dt.Rows.Count; j++)
{
// string ids = dt.Rows[j][0].ToString();
string a1 = dt.Rows[j][1].ToString();
string a2 = dt.Rows[j][2].ToString();
string a3 = dt.Rows[j][3].ToString();
string sql = "insert into History values('" + a1 + "','" + a2 + "','" + a3 + "')";
// SqlConnection cn = Conn.SqlConn();
SqlCommand cmd1 = new SqlCommand(sql, cn);
cmd1.ExecuteNonQuery();
}
}
Response.Write("<Script Language=JavaScript>alert(\"提交成功!\")</Script>");
}
}
--------------------编程问答-------------------- 这样的效果 我也做过了
但 ajax 不使用UpdatePanel控件。
不知"liaoyukun111" 有没有到管家婆的进销存演示版去看一下。
不知它的ajax 是使用的什么
补充:.NET技术 , ASP.NET