是这样的,我做了个DATAGRID嘛,然后我里面有个列是显示用户权限的。然后用户的权限就只有两种,一种是“管理员”,一种是“普通管理员”,那么我在DATAGRID编辑修改的时候,可以修改用户的权限,比如可以把管理员修改成普通管理员,反之亦然!我写的代码是 <asp:TemplateColumn HeaderText="用户权限">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle Wrap="False" HorizontalAlign="Center" Width="100px"></ItemStyle>
<ItemTemplate>
<%# DataBinder.Eval( Container.DataItem,"quanxian") %>
</ItemTemplate>
<FooterStyle HorizontalAlign="Center"></FooterStyle>
<EditItemTemplate>
<asp:DropDownList ID="dlt1" Runat="server">
<asp:ListItem Selected="true" Value="管理员">管理员</asp:ListItem>
<asp:ListItem Value="普通管理员">普通管理员</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>修改是能修改了,可是每次默认的话,管理员是被选中的,可是问题是如果我选择要编辑的这个用户是普通管理员呢,那么dropdownlist应该是把普通管理员放在上面的可是代码我不知道怎么写啊,因为这里还要做判断啊,我不知道如何做判断啊,好像在DATAGRID里,我都手足无措了,帮帮我好吗?谢谢了,,,<%# DataBinder.Eval( Container.DataItem,"quanxian") %>这个是显示权限的,谢谢啦
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle Wrap="False" HorizontalAlign="Center" Width="100px"></ItemStyle>
<ItemTemplate>
<%# DataBinder.Eval( Container.DataItem,"quanxian") %>
</ItemTemplate>
<FooterStyle HorizontalAlign="Center"></FooterStyle>
<EditItemTemplate>
<asp:DropDownList ID="dlt1" Runat="server">
<asp:ListItem Selected="true" Value="管理员">管理员</asp:ListItem>
<asp:ListItem Value="普通管理员">普通管理员</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>修改是能修改了,可是每次默认的话,管理员是被选中的,可是问题是如果我选择要编辑的这个用户是普通管理员呢,那么dropdownlist应该是把普通管理员放在上面的可是代码我不知道怎么写啊,因为这里还要做判断啊,我不知道如何做判断啊,好像在DATAGRID里,我都手足无措了,帮帮我好吗?谢谢了,,,<%# DataBinder.Eval( Container.DataItem,"quanxian") %>这个是显示权限的,谢谢啦
<asp:ListItem Value="管理员">管理员</asp:ListItem>
<asp:ListItem Value="普通管理员">普通管理员</asp:ListItem>
</asp:DropDownList>
<ItemTemplate>
<asp:DropDownList id="CateID" runat="server"></asp:DropDownList>
<input type="hidden" id="Cid" runat="server" value='<%# DataBinder.Eval(Container.DataItem, "CobjectID")%>'/>
</ItemTemplate>
</asp:TemplateColumn>private void DataGridRss_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DropDownList drCateID = (DropDownList)e.Item.FindControl("CateID");
drCateID.DataValueField = "Value";
drCateID.DataTextField = "Text";
drCateID.DataSource = arrCate;
drCateID.DataBind();
for(int i = 0;i<drCateID.Items.Count;i++)
{
//Response.Write ("<li>" + drCateID.Items[i].Value + " = " + ((HtmlInputHidden)e.Item.FindControl("Cid")).Value);
if(drCateID.Items[i].Value == ((HtmlInputHidden)e.Item.FindControl("Cid")).Value)
{
drCateID.SelectedIndex = i;
}
}
}
}
在 DataGrid1.DataBind(); 后立即调用此函数:
protected void SetDropDownListInDataGridSelectVaule()
{
int page=DataGrid1.CurrentPageIndex;//取得Grid的当前页
int size=DataGrid1.PageSize;//取得Grid的分页大小
for(int i=0;i<DataGrid1.Items.Count;i++)
{
try
{
DropDownList tempID=(DropDownList) DataGrid1.Items[i].FindControl["dlt1"];
//假设:DataGrid1.DataSource=TB;
tempID.SelectedValue=TB.Rows[page*size+i]["quanxian"].ToString();
}
catch{}
}
}
多少给一些分了,老兄!新年呀!!~~~
在 DataGrid1.DataBind(); 后立即调用此函数:(换页后也要调用)
protected void SetDropDownListInDataGridSelectVaule()
{
int page=DataGrid1.CurrentPageIndex;//取得Grid的当前页
int size=DataGrid1.PageSize;//取得Grid的分页大小
for(int i=0;i<DataGrid1.Items.Count;i++)
{
try
{
DropDownList tempID=(DropDownList) DataGrid1.Items[i].FindControl["dlt1"];
//假设:DataGrid1.DataSource=TB;
tempID.SelectedValue=TB.Rows[page*size+i]["quanxian"].ToString();
}
catch{}
}
}
多少给一些分了,老兄!新年呀!!~~~
<asp:TemplateColumn HeaderText="用户权限">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle Wrap="False" HorizontalAlign="Center" Width="100px"></ItemStyle>
<ItemTemplate>
<asp:Label ID="lbl1" Runat="server">
<%# DataBinder.Eval( Container.DataItem,"quanxian") %>
</asp:Label>
</ItemTemplate>
<FooterStyle HorizontalAlign="Center"></FooterStyle>
<EditItemTemplate>
<asp:Label ID="lbl2" Visible="False" Runat="server">
<%# DataBinder.Eval( Container.DataItem,"quanxian") %>
</asp:Label>
<asp:DropDownList ID="dlt1" Runat="server">
<asp:ListItem Value="超级管理员">超级管理员</asp:ListItem>
<asp:ListItem Value="普通管理员">普通管理员</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>ASPX页面的代码现在是这样然后我在.vb文件里的databound写下这样的事件 Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
Select Case e.Item.ItemType
Case ListItemType.EditItem
Dim ddl As DropDownList
Dim lbl As Label
ddl = e.Item.FindControl("dlt1")
lbl = e.Item.FindControl("lbl2")
Response.Write("<script>alert('是" & lbl.Text & "');</script>")
If lbl.Text = "超级管理员" Then
ddl.Items(0).Selected = True
Else
ddl.Items(1).Selected = True
End If
End Select
End Sub可是无论怎么来,那个lbl.text值老是空的,太奇怪了,我现在是想得到他的值,从来来进行判断啊,但是始终没有办法,各位帮帮我好吗???就这个啊,!
for(int i=0;i<DataGrid1.Items.Count;i++)
{
try
{
Label templbl;
templbl=(Label) DataGrid1.Items[i].FindControl["lbl"]; DropDownList tempdlt1;
tempdlt1=(DropDownList) DataGrid1.Items[i].FindControl["dlt1"]; if(templbl.Text=="超级管理员")
tempdlt1.SelectedValue="超级管理员";
else
tempdlt1.SelectedValue="普通管理员";
}
}
{
if (v == "操作员")
return 1;
return 0;
}
<asp:DropDownList ID="dlt1" Runat="server" SelectedIndex='<%# myfun(DataBinder.Eval( Container.DataItem,"quanxian").ToString()) %>'>
quanxian 中的数据有问题了上面的方法不会有错的.不过在使用上述代码前不要忘记了 DataGrid1.DataBind();