怎样设置datagridview里面某一行的可编辑性?

perrycoy 2011-05-26 05:13:07
通过设置datagridview的datasource将指定的数据库里面的table显示在datagridview中以后:


this.dataGridView1.AutoGenerateColumns = true;

rdset rdset=new rdset ();

rdsetTableAdapters.projectTableAdapter projectadapter = new rdsetTableAdapters.projectTableAdapter();
this.dataGridView1.DataSource = rdset.project;
projectadapter.Fill(rdset.project);
其中rdset.project表有三个列:project_name, project_label,time_used;

我想只让第三个列(time_used)可编辑(第三列是空列,我是加在数据库中让用户填数据的,提交的时候将该行加到另一个表中,所以前两列的数据是不能改的) 这时要设置第一第二列只读怎么办?
我看到datagridview属性里面有一项readonly,但是这个作用于整个表,怎样才能实现?
...全文
809 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
perrycoy 2011-06-02
  • 打赏
  • 举报
回复
没有看懂 不过现在我已经将this.dataGridView1.AutoGenerateColumns = false;了
然后一列一列的设置了,还好,不影响外观.
xpcxpy 2011-05-26
  • 打赏
  • 举报
回复
datagridview启用编辑,然后对每列的ReadOnly属性按需要进行设置
蝶恋花雨 2011-05-26
  • 打赏
  • 举报
回复
http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx 在不会就看这里
蝶恋花雨 2011-05-26
  • 打赏
  • 举报
回复
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
DataKeyNames="id" Width="402px" onrowupdating="GridView1_RowUpdating"
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowediting="GridView1_RowEditing">
<Columns>
<asp:TemplateField >
<HeaderTemplate>Product</HeaderTemplate>
<ItemTemplate><%#Eval("Product") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>Version</HeaderTemplate>
<ItemTemplate> <%#Eval("Version")%></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>Description</HeaderTemplate>
<ItemTemplate> <%#Eval("Description")%>


<asp:Button ID="fahuo" Text="发货" OnClick="fahuo_Click" CommandArgument='<%#Eval("id") %>' runat="server"/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextAccAddress" runat="server" Text='<%# Eval("Description") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText="编辑" ShowEditButton="True" />
</Columns>
</asp:GridView>

<EditItemTemplate>
<asp:TextBox ID="TextAccAddress" runat="server" Text='<%# Eval("Description") %>'></asp:TextBox>
</EditItemTemplate>
只编辑你想要的列。例如你的第三个列(time_used)
即可剩下你应该会了吧


protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
BindTest();//绑定数据就是显示在gridview的数据
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
BindTest();//绑定数据就是显示在gridview的数据
}

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧