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";
}
}
答案 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)