Disable GridView AlternateRows
本文关键字:AlternateRows GridView Disable | 更新日期: 2023-09-27 17:54:25
我目前得到一个GridView,其中包含几个文本值,其中几个转换成下拉列表单击编辑。这需要我访问单元格的当前文本值,并在单击编辑后相应地设置下拉菜单的selecteindex。这适用于……好吧,一半的行,因为只有那些有RowStyle"编辑",其他人有"备用|编辑",这是一个麻烦,因为我不需要那个功能。
这是我的代码:
protected void gridVariables_RowDataBound(object sender, GridViewRowEventArgs e)
{
//this only works at RowIndex 0, 2, 4 etc.
if (e.Row.RowState == DataControlRowState.Edit)
{
switch (((DataRowView)e.Row.DataItem).Row.ItemArray[2].ToString())
{
case "True":
((CheckBox)e.Row.Cells[0].Controls[1]).Checked = true;
break;
case "False":
((CheckBox)e.Row.Cells[0].Controls[1]).Checked = false;
break;
default:
break;
}
((DropDownList)e.Row.Cells[3].Controls[1]).Items.FindByValue(((DataRowView)e.Row.DataItem).Row.ItemArray[3].ToString()).Selected = true;
}
}
GridView由TemplateFields组成,TemplateFields在ItemTemplate中有标签,或者是CheckBox(索引0)或DropDownList(索引3)作为edittitemtemplate,其他的是"正常的"BoundFields。由于某些原因,我觉得不能在不完全破坏这篇文章格式的情况下发布asp-markup。
那么,是否有任何方法可以改善我的编程结构,让它与"编辑"answers"编辑|交替"行一起工作,或者禁用交替行功能?
谢谢,丹尼斯
DataControlRowState是基于标志的枚举,所以正确的写条件的方法是
if ((e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit)
注意按位&操作符-它既适用于普通行,也适用于备用行。