DataGrid_UpdateCommand(),无法取得第一列的值

swordman123 2006-04-04 05:36:09
aspx:
<asp:datagrid id="DataGridRole" runat="server" Font-Size="10pt" BorderColor="WhiteSmoke" BorderStyle="Solid"
CellPadding="3" BorderWidth="1px" Font-Names="Times New Roman" Height="20px" Width="100%" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn HeaderText="角色ID">
<HeaderStyle Font-Bold="True" Width="10%" BackColor="#BEC5DE"></HeaderStyle>
<ItemTemplate>
<FONT face="宋体">
<asp:Label id="labRoleId" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"RoleId") %>'>
</asp:Label></FONT>
</ItemTemplate>
<EditItemTemplate>
<FONT face="宋体"></FONT>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="角色名">
<HeaderStyle Font-Bold="True" Width="30%" BackColor="#BEC5DE"></HeaderStyle>
<ItemTemplate>
<FONT face="宋体">
<%# DataBinder.Eval(Container.DataItem,"RoleName") %>
</FONT>
</ItemTemplate>
<EditItemTemplate>
<FONT face="宋体">
<asp:TextBox id=RoleName Width="100%" MaxLength="20" Text='<%# DataBinder.Eval(Container.DataItem,"RoleName") %>' Runat="server">
</asp:TextBox></FONT>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="角色描述">
<HeaderStyle Font-Bold="True" Width="30%" BackColor="#BEC5DE"></HeaderStyle>
<ItemTemplate>
<FONT face="宋体">
<%# DataBinder.Eval(Container.DataItem,"RoleDescription") %>
</FONT>
</ItemTemplate>
<EditItemTemplate>
<FONT face="宋体">
<asp:TextBox id=RoleDescription Width="100%" MaxLength="100" Text='<%# DataBinder.Eval(Container.DataItem,"RoleDescription") %>' Runat="server">
</asp:TextBox></FONT>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="确定" HeaderText="修改" CancelText="取消" EditText="修改">
<HeaderStyle Font-Bold="True" Width="20%" BackColor="#BEC5DE"></HeaderStyle>
</asp:EditCommandColumn>
<asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="Delete">
<HeaderStyle Font-Bold="True" Width="10%" BackColor="#BEC5DE"></HeaderStyle>
</asp:ButtonColumn>
</Columns>
</asp:datagrid>

cs:

private void DataGridRole_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
System.Web.UI.WebControls.Label labId = (System.Web.UI.WebControls.Label)e.Item.Cells[0].Controls[0];
int RoleId = Convert.ToInt32(labId.Text.ToString());

这样取不出RoleId 的值,用e.Item.FindControl也不行

}
...全文
124 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
swordman123 2006-04-05
  • 打赏
  • 举报
回复
自己作好了,对RoleId新增了一个编辑列
感谢各位的回复!
Lcindep110 2006-04-04
  • 打赏
  • 举报
回复
System.Web.UI.WebControls.Label labId = (System.Web.UI.WebControls.Label)e.Item.Cells[0].FindControls("labRoleId");
swordman123 2006-04-04
  • 打赏
  • 举报
回复
上面的还是不行哦
CnEve 2006-04-04
  • 打赏
  • 举报
回复
<ItemTemplate>
<asp:Label id="labRoleId" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"RoleId") %>'>
</asp:Label>
</ItemTemplate>


int RoleId = Convert.ToInt32(e.Item.Cells[0].Text);
zhouheng123456 2006-04-04
  • 打赏
  • 举报
回复
你就知道lable的下标是0?

labRoleId 这才是你控件的名称把.

swordman123 2006-04-04
  • 打赏
  • 举报
回复
自己顶一下

62,072

社区成员

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

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

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

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