一个datagrid中创建了6个模板列4个下拉框,2个文本框1.我用属性生成器创建了一个删除按钮列(linkbutton),点击后删除该行,怎么写(和数据库没有关系)?
2.有一个新增按钮,点击一次datagrid就要新增一行模板行,怎么写?
3.有一个保存按钮,点击后执行保存事件,把datagrid中的多行数据存入数据库,怎么写?
4.如何绑定4个下拉框?

解决方案 »

  1.   

    public void ItemsGrid_Command(Object sender, DataGridCommandEventArgs e)
      {
                 if(e.CommandName=="del")
                      {
                        获得当前索引然后做删除事件.
                      }
                 if(e.CommandName == "Insert")
                      {
                          TextBox t1 = (TextBox)e.Item.FindControl("TextBox1");
        TextBox t2 = (TextBox)e.Item.FindControl("TextBox2");
        TextBox t3 = (TextBox)e.Item.FindControl("TextBox3");
                          string strsql="insert into ................................";
                          SqlCommand cmd = new SqlCommand(strsql,conn);
                          conn.Open();
                          cmd.ExecuteNonQuery();
                          conn.Close();
                      }
    把TextBox 放在<footertemplate>里....
    做点击下插入一条保存数据库里。
      

  2.   

    要全部生成好在全部保存最好生成个DataTable插入数据在循环取出保存到数据库中.
      

  3.   

    2.可以创建一个DataTable,当点击添加里,就动态给DataTable添加一行,然后重新将DataTable绑定在DATAGRID,注意要把DataTable保存到ViewState,在PAGELOAD时,再读出来绑定到DATAGRID.3.可以用DataAdapter的InsertCommand和Update()方法,配合后台存储过程就可以自动将DataTable中新添加的行写回数据库.
      

  4.   

    datagrid代码<asp:datagrid id="DGrid_Detail" runat="server" AutoGenerateColumns="False" Width="100%">
    <Columns>
    <asp:TemplateColumn HeaderText="商品编号/名称">
    <ItemTemplate>
    <asp:DropDownList id="DDL_ProName" runat="server"></asp:DropDownList>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="颜色">
    <ItemTemplate>
    <asp:DropDownList id="DDL_Color" runat="server"></asp:DropDownList>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="样式">
    <ItemTemplate>
    <asp:DropDownList id="DDL_Style" runat="server"></asp:DropDownList>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="储位">
    <ItemTemplate>
    <asp:DropDownList id="DDL_LocDesc" runat="server"></asp:DropDownList>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="退库数">
    <ItemTemplate>
    <asp:TextBox id="TB_Count" runat="server"></asp:TextBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="说明">
    <ItemTemplate>
    <asp:TextBox id="TB_Content" runat="server"></asp:TextBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
    </Columns>
    </asp:datagrid>
      

  5.   

    我刚入行,如果我写的话跟楼上的一个思路,不过还不会存到viewstat...
    如果楼主你有更好的不妨贴出来大家看看
      

  6.   

    使用SqlDataSource绑定到GridView,不用写代码,使用向导设置SqlDataSource的ConnectionString,再设置SqlDataSource的DeleteQuery属性,在里面写一句删除的SQL语句就可以了,非常简单。编辑和插入功能也都如此!
      

  7.   

    //****第一问题
    //*****获取要删除的记录ID
            HtmlInputHidden txtID = (HtmlInputHidden)e.Item.FindControl("txtid");
            switch (e.CommandName)
            { 
                case "Delete":                //****调用删除记录函数
                    DeleteRecored(txtID.Value);                //****重新加载数据
                    PageLoadData();
                    break;
            }//****第二个问题
    用两个文本代表你点击新增,在文本输入相应数据,点新增按钮将数据保存到缓存中//****第三个问题
    foreach(datarow drow m in dtable.rows)
    {
        //*****循环保存数据
    }//****邦定下拉列表框数据
    public void DataBindDropList(ref droplist drplist)
    {
        //****获取相应数据,进行邦定
        
    }//****在itemdatabound调用上面这个函数
      

  8.   


    public void ItemsGrid_Command(Object sender, DataGridCommandEventArgs e)
      {
                 if(e.CommandName=="del")
                      {
                        获得当前索引然后做删除事件.
                      }
                 if(e.CommandName == "Insert")
                      {
                          TextBox t1 = (TextBox)e.Item.FindControl("TextBox1");
        TextBox t2 = (TextBox)e.Item.FindControl("TextBox2");
        TextBox t3 = (TextBox)e.Item.FindControl("TextBox3");
                          string strsql="insert into ................................";
                          SqlCommand cmd = new SqlCommand(strsql,conn);
                          conn.Open();
                          cmd.ExecuteNonQuery();
                          conn.Close();
                      }  按e取参数