How to implement popup Calendar dialog box with DataGrid[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 gxh973121 的 blog

the following two pages will demonstrate how to use client side "window.showmodalwindow" in combination with asp.net server side postback.

=======================webform1.aspx=========================

<%@ page language="c#" autoeventwireup="true" %>
<%@ import namespace="system.data" %>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en" >
<html>
 <head>
  <title>webform1</title>
 </head>
 <body ms_positioning="gridlayout">
  <form id="form1" method="post" runat="server">
   <asp:datagrid id="datagrid1" style="z-index: 101; left: 56px; position: absolute; top: 48px" runat="server"
    width="512px" height="256px" autogeneratecolumns="false">
    <columns>
     <asp:boundcolumn datafield="stringcolumn" headertext="stringcolumn"></asp:boundcolumn>
     <asp:templatecolumn headertext="datecolumn">
      <itemtemplate>
       <asp:textbox id=textbox1 runat="server" text='<%# datetime.parse(databinder.eval(container, "dataitem.datecolumn").tostring()).toshortdatestring() %>'>
       </asp:textbox>
       <asp:button id="button1" runat="server" text="edit value"></asp:button>
      </itemtemplate>
     </asp:templatecolumn>
    </columns>
   </asp:datagrid>
  </form>
  <script runat="server">
  protected datatable dt;
  protected void page_load(object sender, system.eventargs e)
  {
   datagrid1.itemdatabound += new system.web.ui.webcontrols.datagriditemeventhandler(this.datagrid1_itemdatabound);
   dt = new datatable("testtable");
   dt.columns.add("stringcolumn",typeof(string));
   dt.columns.add("datecolumn",typeof(datetime));
   dt.rows.add(new object[]{"string 1",datetime.now});
   dt.rows.add(new object[]{"string 2",datetime.now});
   datagrid1.datasource = dt;
   datagrid1.databind();
  }
  protected void datagrid1_itemdatabound(object sender, system.web.ui.webcontrols.datagriditemeventargs e)
  {
   //eliminate the headers and footers.
   if (e.item.cells[1].controls.count == 5)
   {
    textbox tx = (textbox)e.item.cells[1].controls[1];
    button btn = (button)e.item.cells[1].controls[3];
    btn.attributes.add("onclick","return buttonclick('" + tx.clientid + "');");
   }
  }
  </script>
  <script language="javascript">
  function buttonclick(sendertextboxid) {
   //debugger;
   var i;
   var sendertextbox;
   for (i = 0; i <  event.srcelement.parentelement.children.length; i++) {
    if (event.srcelement.parentelement.children[i].id == sendertextboxid) {
     sendertextbox = event.srcelement.parentelement.children[i];
    }
   }
   var returnvalue;
   returnvalue = window.showmodaldialog("calendardialog.aspx?selecteddate=" + sendertextbox.value);
   //debugger;
   if (returnvalue != null) {
    sendertextbox.value = returnvalue.tostring();
   }
   //cancel the postback.
   return false;
  }
  </script>
 </body>
</html>

=======================calendardialog.aspx=========================

<%@ page language="c#" autoeventwireup="true"%>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en" >
<html>
 <head>
  <title>calendardialog</title>
  <base target=_self>
 </head>
 <body ms_positioning="gridlayout">
  <form id="form1" method="post" runat="server">
    <asp:calendar id="calendar1" style="z-index: 101; left: 32px; position: absolute; top: 32px" runat="server"
     width="241px" height="176px"></asp:calendar>
     <input style="z-index: 102; left: 32px; width: 96px; position: absolute; top: 224px; height: 24px"

本文关键:How to implement popup Calendar dialog box with DataGrid
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top