GridView排了一排

时间:2011-03-02 15:17:22

标签: c# asp.net

net 4和c#。

我有一个GridView,我想在我的代码中处于编辑模式时取一行并找到一个控件。

这是我的代码,但不起作用,它只需要GridView的第一行。

有什么想法吗?

protected void uxManageSlotsDisplayer_RowDataBound(object sender, GridViewRowEventArgs e)
{

    switch (e.Row.RowType)
    {
        case DataControlRowType.DataRow:

        // Take Row in Edit Mode DOES NOT WORK PROEPRLY
        if (e.RowState == DataControlRowState.Edit)
        {
            Label myTest = (Label)e.Row.FindControl("uxTest");
        }
        break;

    }

我的代码示例: GridView row in edit mode

解: 阅读本文后:Gridview row editing - dynamic binding to a DropDownList

        protected void uxList_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow &&
                (e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit)
        {
            // Here you will get the Control you need like:
            Label dl = (Label)e.Row.FindControl("uxLblTest");
            dl.Text = "xxxxxxxxxxxxx";
        }
    }

2 个答案:

答案 0 :(得分:1)

你应该在数据绑定之前在网格中设置EditItemIndex。你可以在RowEditing事件中做到这一点, 如在这个例子中:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowediting.aspx

此致 斯特凡诺

答案 1 :(得分:0)

编辑: 添加了对DataRow

的检查
 if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowState == DataControlRowState.Edit)

而不是

 if (e.RowState == DataControlRowState.Edit)