gridview中的代码:
<asp:GridView ID="GVUserPower" runat="server" Width="100%" style="text-align: center" AutoGenerateColumns="False" DataKeyNames="用户名" OnRowCancelingEdit="GVUserPower_RowCancelingEdit" OnRowDataBound="GVUserPower_RowDataBound" OnRowDeleting="GVUserPower_RowDeleting" OnRowEditing="GVUserPower_RowEditing" OnRowUpdating="GVUserPower_RowUpdating">
<Columns>
<asp:BoundField DataField="用户名" HeaderText="用户名" ReadOnly="True" />
<asp:BoundField DataField="用户密码" HeaderText="用户密码" ReadOnly="True" />
<asp:TemplateField HeaderText="管理权限">
<EditItemTemplate>
<asp:DropDownList ID="DLManage" runat="server" Width="60px">
<asp:ListItem>有</asp:ListItem>
<asp:ListItem>无</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblManage" runat="server" Text='<%# Bind("管理权限") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
我添加的droplist的数据不是数据绑定的,是自己手动添加进去的。
想实现在编辑状态下,droplist中的值保持原有的值。
protected void GVUserPower_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowState.ToString().IndexOf("Edit") >= 0)//如果处于编辑状态
{
string UserName = e.Row.Cells[0].Text;
string sql = "select 管理权限 from 权限表 where 用户名='"+UserName+"'";
DataSet ds = opls.GetTable(sql, "权限表");
string manage=ds.Tables[0].Rows[0]["管理权限"].ToString();
Label lblManage = (Label)e.Row.Cells[2].FindControl("lblManage");
lblManage.Text = manage;
DropDownList dlist1 = (DropDownList)e.Row.Cells[2].FindControl("DLManage");
//dlist1.SelectedIndex = dlist1.Items.IndexOf(dlist1.Items.FindByText(lblManage.Text));
dlist1.DataSource = ds;
dlist1.DataTextField = "管理权限";
dlist1.DataValueField = "管理权限";
dlist1.DataBind();
}
}
如果这样的话,编辑的时候是能保存原有的值,但是droplist中只有绑定的一个值,没法进行修改
请问高手怎么解决,droplist中的值尽量不要绑定
<asp:GridView ID="GVUserPower" runat="server" Width="100%" style="text-align: center" AutoGenerateColumns="False" DataKeyNames="用户名" OnRowCancelingEdit="GVUserPower_RowCancelingEdit" OnRowDataBound="GVUserPower_RowDataBound" OnRowDeleting="GVUserPower_RowDeleting" OnRowEditing="GVUserPower_RowEditing" OnRowUpdating="GVUserPower_RowUpdating">
<Columns>
<asp:BoundField DataField="用户名" HeaderText="用户名" ReadOnly="True" />
<asp:BoundField DataField="用户密码" HeaderText="用户密码" ReadOnly="True" />
<asp:TemplateField HeaderText="管理权限">
<EditItemTemplate>
<asp:DropDownList ID="DLManage" runat="server" Width="60px">
<asp:ListItem>有</asp:ListItem>
<asp:ListItem>无</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblManage" runat="server" Text='<%# Bind("管理权限") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
我添加的droplist的数据不是数据绑定的,是自己手动添加进去的。
想实现在编辑状态下,droplist中的值保持原有的值。
protected void GVUserPower_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowState.ToString().IndexOf("Edit") >= 0)//如果处于编辑状态
{
string UserName = e.Row.Cells[0].Text;
string sql = "select 管理权限 from 权限表 where 用户名='"+UserName+"'";
DataSet ds = opls.GetTable(sql, "权限表");
string manage=ds.Tables[0].Rows[0]["管理权限"].ToString();
Label lblManage = (Label)e.Row.Cells[2].FindControl("lblManage");
lblManage.Text = manage;
DropDownList dlist1 = (DropDownList)e.Row.Cells[2].FindControl("DLManage");
//dlist1.SelectedIndex = dlist1.Items.IndexOf(dlist1.Items.FindByText(lblManage.Text));
dlist1.DataSource = ds;
dlist1.DataTextField = "管理权限";
dlist1.DataValueField = "管理权限";
dlist1.DataBind();
}
}
如果这样的话,编辑的时候是能保存原有的值,但是droplist中只有绑定的一个值,没法进行修改
请问高手怎么解决,droplist中的值尽量不要绑定
解决方案 »
- aspx 页面的 Page 继承的是System.Web.UI 。 那用户控件的Page继承的是哪个?
- 次方
- VS2008 调试页面显示有问题啊。。
- css只能改变字体大小,无法改变字体颜色。
- 这种情况怎么办?
- DataGrid中的DropDownList的绑定问题
- 求助!!!!(在线等待)
- CS1973: “System.Web.Mvc.HtmlHelper<dynamic>”没有名为“ActionLink”的适用方法
- 怎么实现:TreeView中展开一个节点时,其已展开亲兄弟节点自动缩回,(即,只能有一个兄弟节点展开,当展开其他兄弟节点时,已展的兄弟节
- 一个急需实现的功能,请大家帮帮忙!谢谢!!!
- da.InsertCommand.CommandText
- 图标出现问号是怎么回事?
{
if (e.Row.RowState.ToString().IndexOf("Edit") >= 0)//如果处于编辑状态
{
Label lblManage = (Label)e.Row.Cells[2].FindControl("lblManage");
DropDownList dlist1 = (DropDownList)e.Row.Cells[2].FindControl("DLManage");
dlist1 .Items.FindByText(lblManage.Text).Selected=true;
}
}
未将对象引用设置到对象的实例。
高手帮忙
{
if (e.Row.RowState.ToString().IndexOf("Edit") >= 0)//如果处于编辑状态
{
string UserName = e.Row.Cells[0].Text;
string sql = "select 管理权限 from 权限表 where 用户名='"+UserName+"'";
DataSet ds = opls.GetTable(sql, "权限表");
string manage=ds.Tables[0].Rows[0]["管理权限"].ToString();
Label lblManage = (Label)e.Row.Cells[2].FindControl("lblManage");
lblManage.Text = manage;
DropDownList dlist1 = (DropDownList)e.Row.Cells[2].FindControl("DLManage");
dlist1.Items.FindByText(manage).Selected=true;
}
}
未将对象引用设置到对象的实例。
以前我也是这么弄的,就报着个错
高手帮忙
protected void GVUserPower_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowState.ToString().IndexOf("Edit") >= 0)//如果处于编辑状态
{
string UserName = e.Row.Cells[0].Text;
string sql = "select 管理权限 from 权限表 where 用户名='"+UserName+"'";
DataSet ds = opls.GetTable(sql, "权限表");
string manage=ds.Tables[0].Rows[0]["管理权限"].ToString();
DropDownList dlist1 = (DropDownList)e.Row.Cells[2].FindControl("DLManage");
dlist1.Items.FindByText(manage).Selected=true;
}
} 把给label赋值的去掉, 编辑状态是找不到label的
就是 if (!IsPostBack)
{
....... }