page_load(){
ViewState["commtype"] = db.getData();
} <EditItemTemplate>
类型:<asp:DropDownList ID="drowdownlist" runat="server" DataSource='<%# (DataTable)ViewState["commtype"] %>'
SelectedValue='<%# Eval("id") %>' DataTextField="title"
DataValueField="id" />
</EditItemTemplate>这样无法绑定到数据到列表上
并且,我需要点击两次"编辑"才会显示编辑框,为什么呢?
我已经在
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex; }
如果这样写,就需要点击两次才显示
如果
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
GridView1.DataBind();
}
这样写,就会显示空白的gridview
<asp:DropDownList ID="ddlSort" runat="server" Width="98%">
</asp:DropDownList>
<asp:HiddenField ID="Hd_Sort" runat="server" Value='<%# Eval("BalSort")%>' />
</ItemTemplate>
if(!IsPostBack)BindData();
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex != -1)
{ if (e.Row.RowState == DataControlRowState.Edit || e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit))
{
((DropDownList)e.Row.FindControl("ddlSort")).SelectedValue = ((HiddenField)e.Row.FindControl("Hd_Sort")).Value;
}
}
} protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
gv.EditIndex = e.NewEditIndex;
string strSort = ((DropDownList)gv.Rows[e.NewEditIndex].FindControl("ddlSort")).SelectedValue.Trim();
gv.EditIndex = -1;
BindData();
}
{
GridView1.EditIndex = e.NewEditIndex;
获取数据绑定GRIDVIEW的方法,而不是GridView1.DataBind();
}