我正在使用gridview编辑来编辑我在gridview中的值,当我按下编辑时,所有列都可以编辑,我希望不允许编辑其中一列。
我有什么方法可以做到这一点吗?
这是我的aspx代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateDeleteButton="True"
onrowdeleting="GridView1_RowDeleting" AutoGenerateEditButton="True"
onrowediting="GridView1_RowEditing"
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowupdating="GridView1_RowUpdating" >
</asp:GridView>
这是我的aspx.cs代码:
public void loadCustomer()
{
SqlConnection objConnection = new SqlConnection("Data Source=localhost;Initial Catalog=SampleApplication;Integrated Security=True");
objConnection.Open();
SqlCommand objCommand = new SqlCommand();
objCommand.CommandText = "Select * from Customer";
objCommand.Connection = objConnection;
objCommand.ExecuteNonQuery();
DataSet objds = new DataSet();
SqlDataAdapter objadap = new SqlDataAdapter(objCommand);
objadap.Fill(objds);
GridView1.DataSource = objds.Tables[0];
GridView1.DataBind();
objConnection.Close();
}
答案 0 :(得分:2)
gridView1的RowDataBound事件
((BoundField)gridView1.Columns [columnIndex])。ReadOnly = true;
答案 1 :(得分:2)
我知道这已经很老了,但我需要在这里为那些分享我的问题的人提供答案。无论如何,我已经在这几天不停地挣扎了几天。当您的问题明确地发布在C#中时,每个人似乎都在为VB发布代码。
您正在寻找的是:
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[columntobedisabled].Enabled = false;
}
其中&#39; columntobedisabled&#39;是要禁用的列的索引号...例如。 1
答案 2 :(得分:0)
如果是C#网站或WebForm,请在Page_Load()中的文件后面的代码中输入以下代码
protected void Page_Load(object sender, EventArgs e)
{
// Your code
((BoundField)GridView1.Columns[columnIndex]).ReadOnly = true;
}
这样做也将有助于克服错误
System.ArgumentOutOfRangeException:'指定的参数超出有效值范围。参数名称:索引'
答案 3 :(得分:-1)
您需要将权限"ReadOnly= true"
提供给您不想编辑的列。
例如
GridView1.columns[1].ReadOnly= true;
您可以在GridView的RowDataBound事件中使用此行。