用户表
a a a a a 类型 a a
* * * * * 2 * * 用户类型表
type flag
管理员 4
斑竹 3
用户 2
tt 1
我在datalist 里的编辑模板写<asp:DropDownList runat="server" id="ddl_usertype"></asp:DropDownList> 用户类型,下拉菜单. 想让菜单的默认值和从用户表里读出的值对应并显示 比如用户类型是 2 ,那么下拉菜单就显示 "用户", 4 就显示"管理员", 主要是2个表,俺不会弄
--------------------------------------------------------------------------------------
还有就是用户密码用了 sha1加密, 编辑的时候读取的是 加密字符串, 但是点更新到数据库的话,又会吧这个加密字符串加密 ,这样就会出问题, 有没有办法在编辑的情况下,把sha1欢迎成原密码? 如果真补能原因的话,怎么判定?如果改了密码的话就加密入库,如果没改还是那段密文的话就不加密按原来的入库??
a a a a a 类型 a a
* * * * * 2 * * 用户类型表
type flag
管理员 4
斑竹 3
用户 2
tt 1
我在datalist 里的编辑模板写<asp:DropDownList runat="server" id="ddl_usertype"></asp:DropDownList> 用户类型,下拉菜单. 想让菜单的默认值和从用户表里读出的值对应并显示 比如用户类型是 2 ,那么下拉菜单就显示 "用户", 4 就显示"管理员", 主要是2个表,俺不会弄
--------------------------------------------------------------------------------------
还有就是用户密码用了 sha1加密, 编辑的时候读取的是 加密字符串, 但是点更新到数据库的话,又会吧这个加密字符串加密 ,这样就会出问题, 有没有办法在编辑的情况下,把sha1欢迎成原密码? 如果真补能原因的话,怎么判定?如果改了密码的话就加密入库,如果没改还是那段密文的话就不加密按原来的入库??
<asp:ListItem Value="1">管理员</asp:ListItem>
<asp:ListItem Value="2">普通管理员</asp:ListItem>
</asp:DropDownList>这里有个quanxian字段,里面保存的就是value值,你的前台可以先写上这样.然后值也都写上去,然后这里的value跟quanxian里的一样,这样他就会根据数据库里的值选中了.第二个问题的话,密码是无法还原的,你可以在datagrid里面放个隐藏的控件保存这个密码.然后在要修改进数据库的时候,取出这个隐藏的控件的值跟现在的比较,如果不同则加密新的,不然不改变则可.
this.dpdAreas.DataTextField = "AreaName";
this.dpdAreas.DataValueField = "AreaID";
this.dpdAreas.DataSource = DS;
this.dpdAreas.DataBind();你的DS中必须有AreaName和AreaID两个字段
2.自定义数据绑定
for(int i = 10;i <= 50; i += 10)
{
ListItem ls = new ListItem();
ls.Text = i.ToString()+"人";
ls.Value = i.ToString();
this.ddlDisplayNum.Items.Add(ls);
}
this.ddlDisplayNum.Items.Add(new ListItem("全部",""));
this.ddlDisplayNum.SelectedValue = "20";
{
DropDownList ddl_usertype=(DropDownList)e.Item.FindControl("ddl_usertype");
DropDownList ddl_userlock=(DropDownList)e.Item.FindControl("ddl_userlock");
if (e.Item.ItemType == ListItemType.EditItem )
{
ddl_band(ddl_usertype,"[user_type]","type","flag");
ddl_band(ddl_userlock,"[user_lock]","lock","flag");
}
} private void ddl_band(System.Web.UI.WebControls.DropDownList ddl_name,string sql_from,string TextField,string ValueField)
{
string sql="select * from "+sql_from+" order by id asc";
SqlConnection conn=new SqlConnection(conn_str) ;
SqlCommand run_sql=new SqlCommand (sql,conn);
conn.Open ();
SqlDataReader rd=run_sql.ExecuteReader ();
ddl_name .DataSource =rd;
ddl_name .DataTextField=TextField;
ddl_name .DataValueField =ValueField;
ddl_name.DataBind ();
rd.Close ();
conn.Close ();
}
----------------------------绑定结束----------------------------------------------------------前台代码--------------------------------
<asp:DropDownList runat="server" id="ddl_usertype"></asp:DropDownList></TD>
<TD style="HEIGHT: 25px" width="67" bgColor="#ffffff">用户状态</TD>
<TD style="HEIGHT: 25px" width="189" bgColor="#ffffff">
<asp:DropDownList runat="server" id="ddl_userlock"></asp:DropDownList></TD>
----------------------------代码结束--------------------------------楼上兄弟说的<asp:DropDownList ID="dlt1" Runat="server" SelectedValue='<%# DataBinder.Eval( Container.DataItem,"quanxian").ToString() %>'>在我这里没法实现,后台直接绑定的, 跟不出SelectedValue= 这个属性, 即使跟出了, <%# %>的取值是从数据库1 里得出得值, 只有 1 2 3 4 等,但是下拉列表是从数据库2 里读得值.
我得要求是 数据库1得值" 2"= 数据库2得值 "2" 得时候, 下拉列表就显示 2对于得TextField("用户")