Bil*_*ult 2 c# asp.net gridview
有没有办法将GridView上的模板列设置为只读后面的代码.喜欢如果测试Admin=true make readonly= false else readonly = true?
我发现穆罕默德·阿赫塔尔的答案几乎是现场,除非我需要在我的案例中略微改变if条款以涵盖所有条件.我的if子句如下.
if ((e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit ||
(e.Row.RowState & DataControlRowState.Alternate) == DataControlRowState.Alternate)
Run Code Online (Sandbox Code Playgroud)
我没有发现原来的任何问题,直到我有一个特殊值为e.Row.RowState"Alternate | Edit",这使得
(e.Row.RowState == DataControlRowState.Edit ||
e.Row.RowState == DataControlRowState.Alternate) == false
Run Code Online (Sandbox Code Playgroud)
不过,我应该感谢穆罕默德·阿赫塔尔指出我朝着正确的方向前进.
这是我的完整代码:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if ((e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit || (e.Row.RowState & DataControlRowState.Alternate) == DataControlRowState.Alternate)
{
TextBox txt = (TextBox)e.Row.FindControl("ControlID");
txt.ReadOnly = true;
}
}
Run Code Online (Sandbox Code Playgroud)
PS:为了使DropDownList只读,你需要在它的OnDataBound事件中禁用它:
protected void DropDownList1_DataBound(object sender, EventArgs e)
{
((DropDownList)sender).Enabled = false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12819 次 |
| 最近记录: |