分都问光了啊!再来帮我个简单的问题好不啊啊,谢谢啊!

hackate 2005-02-17 11:59:22
是这样的,我做了个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") %>这个是显示权限的,

谢谢啦
...全文
313 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
erphome 2005-09-01
  • 打赏
  • 举报
回复
思归的方法真是太好了...顶顶顶
hackate 2005-02-17
  • 打赏
  • 举报
回复
哎。。。是不是很难啊。。。。
zhang5wen 2005-02-17
  • 打赏
  • 举报
回复
看不懂在说什么
hackate 2005-02-17
  • 打赏
  • 举报
回复
果然是思归大哥的方法可以,太奇怪了,VS。NET提示没那个属性,然后我以为是思归大哥记错了。

哎,没想到,既然是这样。。。。太晕了,我晕了一天了。。既然这样解决了,

此时此克,我真不知道该如何高兴啊。。真的粉激动粉激动。。。感谢这里所有的朋友的帮助!

再次谢谢你们啦!
hackate 2005-02-17
  • 打赏
  • 举报
回复
可是真的没那个属性,我这里那里下面怎么划上波浪线啊,怎么回事那,告诉我嘛
brightheroes 2005-02-17
  • 打赏
  • 举报
回复
思归的方法是最简单的
brightheroes 2005-02-17
  • 打赏
  • 举报
回复
楼主,思归老大的方法是可行的
hackate 2005-02-17
  • 打赏
  • 举报
回复
哎,用个DATAGRID这么难,哎,还不如用TABLE。。。。真是郁闷到家了。心情差到极点,以后再也不会用DATAGRID,效率那么低。。。
hackate 2005-02-17
  • 打赏
  • 举报
回复
我真的快疯了。。。能不能就我代码改改,我实在不懂。哎。。
justin_chang 2005-02-17
  • 打赏
  • 举报
回复
吃饭去了
justin_chang 2005-02-17
  • 打赏
  • 举报
回复
可是无论怎么来,那个lbl.text值老是空的

应该是: <%# DataBinder.Eval( Container.DataItem,"quanxian") %>
quanxian 中的数据有问题了

上面的方法不会有错的.不过在使用上述代码前不要忘记了 DataGrid1.DataBind();
cnhgj 2005-02-17
  • 打赏
  • 举报
回复
简单点就写个函数转一下

public int myfun(string v)
{
if (v == "操作员")
return 1;
return 0;
}


<asp:DropDownList ID="dlt1" Runat="server" SelectedIndex='<%# myfun(DataBinder.Eval( Container.DataItem,"quanxian").ToString()) %>'>
hackate 2005-02-17
  • 打赏
  • 举报
回复
可是楼上跟我的代码应该意思是一样,应该也不行吧。/dk
justin_chang 2005-02-17
  • 打赏
  • 举报
回复
自己翻译成VB了, 主要对是您的问题不是很清楚.能说具体些更好
justin_chang 2005-02-17
  • 打赏
  • 举报
回复
用C# 是:
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="普通管理员";
}
}
hackate 2005-02-17
  • 打赏
  • 举报
回复
如果能解决分数不够的话,直接说,真的没关系,我把剩下的90分都送了也可以的,。。我真的太急了,这个问题。。:(
hackate 2005-02-17
  • 打赏
  • 举报
回复
我刚一下午啊,修改了一些啊,真的是从上午到现在这个问题还没解决,我真的快困惑死了!
<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值老是空的,太奇怪了,我现在是想得到他的值,从来来进行判断啊,但是始终没有办法,各位帮帮我好吗???就这个啊,!
justin_chang 2005-02-17
  • 打赏
  • 举报
回复
//假设您的DataGrid为: DataGrid1 ,其 DataSource=TB;
在 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{}
}
}
多少给一些分了,老兄!新年呀!!~~~
hackate 2005-02-17
  • 打赏
  • 举报
回复
谢谢思归大哥和孟子大哥先!

哎呀,我不懂C#啊,哪个朋友能先帮忙翻译一“孟子E章”大哥的方法呢,感激不尽
justin_chang 2005-02-17
  • 打赏
  • 举报
回复
//假设您的DataGrid为: DataGrid1 ,其 DataSource=TB;
在 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{}
}
}
多少给一些分了,老兄!新年呀!!~~~
加载更多回复(3)

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧