这样为什么不能从datagrid中的一个findcontrol 取出值然后输出 谢谢
<asp:datagrid id="pro_bigclass_datagrid" runat="server" AutoGenerateColumns="false" Width="384px" AllowPaging="True" PageSize="4">
<Columns>
<asp:TemplateColumn HeaderText="选择">
<ItemTemplate>
<asp:Label ID="p_id" Runat=server Text='<%# DataBinder.Eval(Container.DataItem,"program_id")%>' Visible=True></asp:Label>
<asp:CheckBox ID="chkExport" Runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>private void Button1_Click(object sender, System.EventArgs e)
{
string int_selected_templateed=string.Empty;
foreach(DataGridItem di in pro_bigclass_datagrid.Items) 

if(((CheckBox)di.FindControl("chkExport")).Checked==true) 

 int_selected_templateed+=((Label)di.FindControl("p_id")).Text.Trim()+",";
}          

为什么不能这样不能从datagrid中的一个findcontrol 取出值然后输出int_selected_templateed 谢谢}

解决方案 »

  1.   

    foreach(DataGridItem di in pro_bigclass_datagrid.Items) 

    CheckBox cb = (CheckBox)di.FindControl("chkExport");
    if(cb.Checked) 

    Label lb = ((Label)di.FindControl("p_id");
     int_selected_templateed += lb.Text.Trim()+",";
    }          

      

  2.   

    你的DATAGRID控件在绑定的时候,有没有把它放在
    if(!this.IsPostBack)
    {}
    过程里面?
    如果没有,那么,你每一次提交页面,该控件重新加载,你在客户端所做的选择全部无效.
      

  3.   

    楼上说的对,要把绑定代码放到 if(!this.IsPostBack) 里