要实现的:就像进销存销售单据输入模式:
设置一表格,表格分为几行几列,用户在其中点击输入信息、保存(用户的每个输入都能用程序控制)。

解决方案 »

  1.   

    http://blog.csdn.net/net_lover/archive/2001/06/27/6869.aspx
      

  2.   

    使用IFRAME,让它有焦点,在里面设一表格
      

  3.   

    可以用DataGrid的模板列来实现,我做过类似的,应该能达到你的要求,应用模板列用户在表格内输入数据,每个单元格的数据都可以单独取出进行保存,模板中用TextBox后者Label都可以的
      

  4.   


    用DataGrid控件实现我说的那样的功能是不是还要电击编辑后才能输入?我刚接触asp.net对DataGrid控件不是很熟悉.
    说错的地方,前辈多多指教:)
      

  5.   

    看一下这篇文章,不知对你有没有帮助。http://dev.csdn.net/develop/article/18/18744.shtm其设计思路就是1。用<ItemTemplate>代替常用的<boundTelplate>,并在<ItemTemplate>中置入<asp:textbox>WEB控件,实现常态下datagrid中显示文框。
        <ItemTemplate>
            <asp:TextBox id=Email runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Email") %>'>
            </asp:TextBox>
          </ItemTemplate>2。添加栏则放各列的
       <FooterTemplate>
            <asp:TextBox id="NewEmail" runat="server"></asp:TextBox>
          </FooterTemplate>3。保存新增数据:
      在后台响应<footerTemplate>中的添加按钮事件,实现数据的新增,并对DATAGRID重新绑定。private void dgContacts_ItemCommand(object source , System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
      // 添加新数据到 dataset.  这里我使用了数组以提高处理效率.
      if (e.CommandName == "Add")
      {
        string[] sContact = {"", "", ""};
        sContact[0] = ((TextBox)e.Item.FindControl("NewEmail")).Text;
        sContact[1] = ((TextBox)e.Item.FindControl("NewFirst")).Text;
        sContact[2] = ((TextBox)e.Item.FindControl("NewLast")).Text;    _dsContacts.Tables["Contact"].Rows.Add(sContact);    SaveContacts();
      }  BindContacts();
    }4。保存对原数据的修改,通过穷举datagrid中的datagriditem实现private void btnUpdate_Click(object sender, System.EventArgs e)
    {
      // 循环处理每个数据项.
      foreach (DataGridItem di in dgContacts.Items)
      {
        // 确信是数据项而不是页首或页尾.
        if (di.ItemType == ListItemType.Item || di.ItemType == ListItemType.AlternatingItem)
        {
          // 取得更新或删除操作执行以后的当前行.
          DataRow dr = _dsContacts.Tables["Contact"].Rows.Find(dgContacts.DataKeys[di.ItemIndex]);      // 检查是否需要删除某行.
          if (((CheckBox)di.FindControl("chkDelete")).Checked)
          {
            _dsContacts.Tables["Contact"].Rows.Remove(dr);//删除指定行
          }
          else
          {
            //更新数据行.
            dr["Email"] = ((TextBox)di.FindControl("Email")).Text;
            dr["FirstName"] = ((TextBox)di.FindControl("First")).Text;
            dr["LastName"] = ((TextBox)di.FindControl("Last")).Text;
          }
        }
      }   // 如果有变化则保存它.
       if (_dsContacts.HasChanges())
      {
        SaveContacts();
      }  BindContacts();//绑定
    }