当前位置:编程学习 > C#/ASP.NET >>

高手帮忙看一下 这样的功能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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,