<asp:DataGrid id="dgd" runat="server"
<asp:TemplateColumn HeaderText="111">
<ItemTemplate>
<asp:Label ID="mylabel" runat="server" text=""></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</asp:DataGrid>我需要在.aspx.cs里对mylabel.text进行操作,可是我在外面得不到mylabel这个id,请问应该怎么办?
<asp:TemplateColumn HeaderText="111">
<ItemTemplate>
<asp:Label ID="mylabel" runat="server" text=""></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</asp:DataGrid>我需要在.aspx.cs里对mylabel.text进行操作,可是我在外面得不到mylabel这个id,请问应该怎么办?
ps:回kuibobo(^踏雪无痕)
<asp:Label ID="mylabel" runat="server" text="<%# 数据绑定了没有%>"></asp:Label>
------------------------------------这里绑定了我还怎么改啊?
lb = (label)dgd.item[指定Label控件所在DataGrid的行数].findcontrol("mylabel");
lb.text
这样就可以取得它的text值了.
<asp:DataGrid id="dgd_paper" runat="server" OnItemDataBound="xxxx">
<asp:TemplateColumn HeaderText="xxxx">
<ItemTemplate>
<asp:Label ID="mylabel" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</asp:DataGrid>.cs代码:protected void Page_Load(object sender, System.EventArgs e)
{string connectionString = ConfigurationManager.AppSettings["mydatabasesetting"]; SqlConnection myConnection = new SqlConnection(connectionString); SqlCommand myCommand = new SqlCommand(mysql, myConnection); SqlDataAdapter myAdapter = new SqlDataAdapter();
myAdapter.SelectCommand = myCommand; DataSet myDataSet = new DataSet();
myAdapter.Fill(myDataSet); dgd_paper.DataSource = myDataSet;
dgd_paper.DataBind();
myConnection.Close();
} protected void xxxx(object sender, DataGridItemEventArgs e)
{
((System.Web.UI.WebControls.Label)dgd_paper.item[0].FindControl("mylabel")).Text = "asdf";//错误提示在这一行
}错误:
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index