我有以下aspx:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
BorderStyle="None" Font-Names="Verdana" Font-Size="12px"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged" ShowHeader="False"
GridLines="None" EnableModelValidation="True" Width="22%" >
<RowStyle BorderStyle="None" Height="40px" HorizontalAlign="Left"/>
<Columns>
<asp:HyperLinkField Text="<img src='../Images/CMM/download.png'/>"></asp:HyperLinkField>
<asp:ButtonField CommandName="Select" DataTextField="codigo" DataTextFormatString="{0:d}"
ItemStyle-HorizontalAlign="Left" ControlStyle-Font-Underline="true">
<ControlStyle Font-Underline="True" />
</asp:ButtonField>
</Columns>
<EditRowStyle BorderStyle="None" />
<AlternatingRowStyle BorderStyle="None" />
</asp:GridView>
我有以下apsx.cs文件代码:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
CallSaveAs(GridView1.SelectedRow.Cells[1].Text);
}
GridView1.SelectedRow.Cells [1] .Text为空但我可以在Debug上看到它
我也尝试过:
ButtonField bf = (ButtonField)GridView1.SelectedRow.Cells[1].Controls[0];
但我得到无法将类型'System.Web.UI.Control'转换为'System.Web.UI.WebControls.ButtonField'
终于找到了解决方案:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs)
{
LinkButton lb = (LinkButton)GridView1.SelectedRow.Cells[1].Controls[0];
CallSaveAs(lb.Text);
}
答案 0 :(得分:1)
我认为ButtonField呈现为多个控件,你想要的是一个LinkButton,所以你需要做的是引用第二个控件并将其转换为LinkButton,如下所示 -
LinkButton btn = (LinkButton)GridView1.SelectedRow.Cells[1].Controls[1];
string text = btn.Text;
答案 1 :(得分:0)
ButtonField bf =(ButtonField)GridView1.SelectedRow.Cells [2] .Controls [0];
现在试试......
相同的条件,不同的数据源在这里工作....