簡體   English   中英

如何將動作按鈕(例如編輯和刪除)添加到動態gridview

[英]How to add action buttons like edit and delete to dynamic gridview

我添加了動態生成的GridView。 我正在從數據庫中獲取行並將其加載到DataTable中。 我想向此DataTable添加Edit和Delete Button並將其綁定到GridView,以便我可以編輯和刪除GridView的內容。 GridView生成了多次,並在循環中調用,因為它需要生成數周的時間表。 這是綁定數據和GridView生成的源代碼:

protected void BindData(string str)
{
    string[] startdate = getdate(str);
    int firstdate = Convert.ToInt32(startdate[1]);
    int lastdate = firstdate + 7;
    string enddate = startdate[0]+"/"+Convert.ToString(lastdate)+"/"+startdate[2];
    if (conn.State == ConnectionState.Closed)
        conn.Open();

    SqlCommand cmd = new SqlCommand("SELECT DISTINCT CONVERT (varchar(25), Cale_WeekDate,106) AS 'Date',Cale_DayName AS 'Day',Cale_Task8 AS '08:00 AM',Cale_Task9 AS '09:00 AM',Cale_Task10 AS '10:00 AM',Cale_Task11 AS '11:00 AM',Cale_Task12 AS '12:00 PM',Cale_Task13 AS '1:00 PM' FROM Calendar WHERE Cale_WeekDate BETWEEN '"+str+"' AND '"+enddate+"'", conn);
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds);               
    GridView gvTimeSheet = new GridView();
    //gvTimeSheet.ID = "gvTimeSheet" + gridcount;
    gvTimeSheet.AutoGenerateColumns = false;

    dt = ds.Tables[0];
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        BoundField boundfield = new BoundField();
        boundfield.DataField = dt.Columns[i].ColumnName.ToString();
        boundfield.HeaderText = dt.Columns[i].ColumnName.ToString();
        gvTimeSheet.Columns.Add(boundfield);
    }
    gvTimeSheet.DataSource = dt;
    gvTimeSheet.DataBind();
    gvTimeSheet.Width = 600;
    gvTimeSheet.HeaderStyle.CssClass = "header";
    gvTimeSheet.RowStyle.CssClass = "rowstyle";

    Panel1.Controls.Add(gvTimeSheet);
    HtmlGenericControl linebreak = new HtmlGenericControl("br");            
    Panel1.Controls.Add(linebreak);       
}

在asp.net中,我們可以執行以下操作:

    <asp:GridView>
        <Columns>
            <asp:TemplateField HeaderText="Test">
                <ItemTemplate>
                    <asp:Button ID="btnTest" CommandArgument='btnTest' runat="server" Text="Test et" OnClick="btnTest_Click" />
                    <asp:Button ID="btnVerify" CommandArgument='btnVerify' runat="server" Text="Verify" OnClick="btnVerify_Click" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

在代碼方面:

protected void btnTest_Click(object sender, EventArgs e)
{
}

protected void btnVerify_Click(object sender, EventArgs e)
{
}

您也可以在運行時將按鈕添加為列。

以最大列數為例,假設您有3個數據綁定列(i = 3),在位置(i + 1 = 4)添加模板列以進行編輯,在位置(i + 1 = 5)添加下一個模板列以進行刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM