asp.net gridview 点了编辑不处于编辑状态

很奇怪当我点了编辑以后,gridview不处于编辑状态,请看代码:前台:<body><formid="form1"runat="server"><div><asp:Gri... 很奇怪当我点了编辑以后,gridview不处于编辑状态,请看代码:
前台:
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowSorting="True"
EnableModelValidation="True" onrowediting="GridView1_RowEditing" PageIndex="10">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
后台:
public partial class _Default : System.Web.UI.Page
{
Operate oprt = new Operate();
public static string cmdTxt = "";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
cmdTxt = "select id,merchantName from deal_blog order by id desc";
GridView1.DataSource = oprt.GetDataSet(cmdTxt);
GridView1.DataKeyNames = new string[] { "id" };//主键
GridView1.DataBind();
}
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = -1;
DataBind();
}
public void DataBind()
{
GridView1.DataSource = oprt.GetDataSet(cmdTxt);
GridView1.DataKeyNames = new string[] { "id" }; //主键
GridView1.DataBind();
}
}
请问是什么原因啊
展开
 我来答
枫琴LOVE
2011-04-27 · 超过24用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:43.1万
展开全部
首先 我看见你的
<asp:GridView ID="GridView1" runat="server" AllowSorting="True"
EnableModelValidation="True" onrowediting="GridView1_RowEditing" PageIndex="10">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
GridView列表,只有处理命令列,没有其他的数据列!不知道你要编辑什么东西 呵呵!
第一 GridView要想使用自带的编辑、更新、删除、等功能时,你的所有数据展现列必须是模板列,也就是 TemplateField 类型的,
只有设置成为TemplateField 类型的列,你才可以在GridView的编辑模板中才可以看到,每一个TemplateField 都有一个ItemTemplate和EditItemTemplate,这个ItemTemplate项里有一个Label控件,它是用来显示这列绑定的数据的。而EditItemTemplate里面有一个TextBox控件,其实你点击“编辑”展现的其实就是这个TextBox控件。

你的GridView里面没有一个TemplateField 类型的列,怎么编辑呀,呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yj4018no1
2011-04-27 · 超过12用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:20.1万
展开全部
编辑功能需要有对应的编辑模版,在设置编辑行后,对应的编辑模版就会显示处于来

GridView1.EditIndex = 0 设置为第一行开始编辑,则编辑行就会显示。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斯蒂芬周ZG
2011-04-27 · TA获得超过135个赞
知道答主
回答量:109
采纳率:0%
帮助的人:88.5万
展开全部
GridView1.EditIndex = -1;
这句话的意思就是没有需要编辑的行,你在每次编辑的时候设置为-1肯定不对,这是要在点击取消的时候才能这么用
修改为
GridView1.EditIndex = e.index;就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linwanyi1214
推荐于2018-04-12 · 超过18用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:27.3万
展开全部
<Columns>
<asp:TemplateField SortExpression="TrxDate">
<ItemTemplate>
<asp:Label ID="lblDate" runat="server" Text='<%# Eval("TrxDate") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtDate" runat="server" Width="74px" CssClass="textbox" Text='<%# Eval("TrxDate") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
编辑状态要添加一个EditItemTemplate
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
marco_98
2011-04-27 · TA获得超过452个赞
知道小有建树答主
回答量:553
采纳率:71%
帮助的人:267万
展开全部
去掉
GridView1.EditIndex = -1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式