日期:2014-05-18  浏览次数:20830 次

gridview模板列chkbox,弹出对话框
gvidview中有checkbox列,"申请时间"、"类型"列...
其中,checkbox模板列头放了一个按钮“导出“,类型列只有两个值类型1和类型2
如: <asp:GridView ID="GVList" runat="server" Width="100%" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Vertical" AutoGenerateColumns="False" AllowPaging="True" OnPageIndexChanging="GVList_PageIndexChanging" PageSize="30" OnRowDataBound="GVList_RowDataBound" >  
<Columns>  
  <asp:TemplateField >
  <HeaderTemplate>
  <asp:Button ID="btnimport" runat="server" SkinID="ButtonSkin" Text="导出" CommandName="import" OnClick="btnimport_Click" />
  </HeaderTemplate>
  <ItemTemplate>
  <asp:CheckBox ID="GVchkbox" runat="server" SkinID="CheckBoxSkin" Checked='<%# Bind("chk") %>' AutoPostBack="false" />  
  </ItemTemplate>
</asp:TemplateField>
...
当点导出按钮时,传一个DATATABLE,到另一个页面。
要求:当用户选择记录时,若混选(即有类型1,也有类型2),则弹出对话框,提示用户是否确认混选,若用户选择是,则进入下一个页面,否则不进行操作。
问题是我不能很好的控制何时弹出对话框。
我在page_load()事件里进行判断,如果选择的记录中有混选现象时,即:
 for (int i = 0; i < dr.Length-1; i++)
{
 if (dr[i]["typecd"].ToString().Trim() != dr[i + 1]["typecd"].ToString().Trim())
  {
  SystemContant.flag = "1";
  break;
  }
}
if (SystemContant.flag == "1")
  {
  SystemContant.flag = "0";
  GVList.HeaderRow.Cells[0].Attributes.Add("onclick", "if(!confirm('确认混选,申请购买?')) return false");
 }
其中SystemContant.flag 初值为"0";dr是datarow[],为所有选择的记录组。
向各位求助,谢谢!

 

------解决方案--------------------
帮顶