GV.Rows[index].Cells[2].Text.ToString();我用这个语句取到是空值,怎么回事哦?
部分前台代码如下:
<asp:GridView ID="GV" runat="server" AutoGenerateColumns="False" AllowPaging="True" OnRowCommand="GV_RowCommand"
OnPageIndexChanging="GV_PageIndexChanging" PageSize="15" CellPadding="4" ForeColor="Black" AllowSorting="True" Height="232px" Width="725px" BackColor="#E0E0E0" BorderColor="#E0E0E0" BorderStyle="Inset">
<Columns>
<asp:TemplateField HeaderText="编号">
<ItemTemplate>
<b>
<%# DataBinder.Eval(Container.DataItem, "ACTIVITYID") %>
</b>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="活动主题">
<ItemTemplate>
<b>
<a href='ActivityDetail.aspx?activity_id=<%# DataBinder.Eval(Container.DataItem, "ACTIVITYID") %>'><%# DataBinder.Eval(Container.DataItem, "TITLE") %></a>
</b>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="发布者">
<ItemTemplate>
<b>
<%# DataBinder.Eval(Container.DataItem, "ORGANIZER")%>
</b>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="发布时间">
<ItemTemplate>
<b>
<%# DataBinder.Eval(Container.DataItem, "TIME")%>
</b>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField Text="删除" HeaderText="删除" CommandName="Delete" />
</Columns>
部分前台代码如下:
<asp:GridView ID="GV" runat="server" AutoGenerateColumns="False" AllowPaging="True" OnRowCommand="GV_RowCommand"
OnPageIndexChanging="GV_PageIndexChanging" PageSize="15" CellPadding="4" ForeColor="Black" AllowSorting="True" Height="232px" Width="725px" BackColor="#E0E0E0" BorderColor="#E0E0E0" BorderStyle="Inset">
<Columns>
<asp:TemplateField HeaderText="编号">
<ItemTemplate>
<b>
<%# DataBinder.Eval(Container.DataItem, "ACTIVITYID") %>
</b>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="活动主题">
<ItemTemplate>
<b>
<a href='ActivityDetail.aspx?activity_id=<%# DataBinder.Eval(Container.DataItem, "ACTIVITYID") %>'><%# DataBinder.Eval(Container.DataItem, "TITLE") %></a>
</b>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="发布者">
<ItemTemplate>
<b>
<%# DataBinder.Eval(Container.DataItem, "ORGANIZER")%>
</b>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="发布时间">
<ItemTemplate>
<b>
<%# DataBinder.Eval(Container.DataItem, "TIME")%>
</b>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField Text="删除" HeaderText="删除" CommandName="Delete" />
</Columns>
{
int index = Convert.ToInt32(e.CommandArgument); //待处理的行下标
string name = GV.Rows[index].Cells[2].Text.ToString();
}绑定数据后取的;
<ItemTemplate>
<b>
<%# DataBinder.Eval(Container.DataItem, "ORGANIZER")%>
</b>
</ItemTemplate>
</asp:TemplateField>
</ItemTemplate>
</asp:TemplateField>
==
<asp:TemplateField HeaderText="发布者">
<ItemTemplate>
<b>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("ORGANIZER")%>'></asp:Label>
</b>
</ItemTemplate>
</asp:TemplateField> protected void GV_RowCommand(object sender, GridViewCommandEventArgs e)
{
int index = Convert.ToInt32(e.CommandArgument); //待处理的行下标
string name = ((Label)(GV.Rows[index].FindControl("Label1"))).Text;
}
((LinkButton)GV.Rows[index].Cells[2].Controls(1)).Text即可
((Label)(GV.Rows[index].Cells[2].Controls[0])).Text;
<asp:TemplateField HeaderText="发布者">
<ItemTemplate>
<b>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("ORGANIZER")%>'></asp:Label>
</b>
</ItemTemplate>
</asp:TemplateField> 取值:
String str = ((Label)GV.Rows[index].FindControl("Label1")).Text;
为什么使用了模板列就不能用Cell[2]了呢,菜鸟问题,希望能回答哦,嘿嘿
好像GV.Rows[index].Cells[2].后面有Control