2010年11月1二5日星期肆威尼斯人6799.com,DataGrid控件用法

    {


<asp:Button ID=”Button1″ runat=”server” Text=”Button” OnClientClick=”openDia();return false;” />

⑵首先你在DataGrid控件的绑定按钮中添加CommandName=”delete”属性(当然,也得以取你自定义的命令名称);且设置DataGrid的DataKeyField属性值为数据源的ID标识,如:DataKey菲尔德=”ID”

  }

有比比皆是网络好友遭逢这么的标题:在DataGrid模板列中的按钮能够触发ItemCommand事件只是怎么触发别的事件?(比如放置DropDownList怎么触发SelectedIndexChange事件?……)
按照http://blog.csdn.net/LoveCherry/archive/2005/03/24/328455.aspx作者们举办一下修改:
在模板列中加进1个DropDownList

<asp:TemplateColumn HeaderText=”学院”>
      <ItemTemplate>
       <asp:DropDownList ID=”dep2″ Runat=”server” AutoPostBack=”True”
OnSelectedIndexChanged=”DropDownList2_SelectedIndexChanged”></asp:DropDownList>
      </ItemTemplate>
      <EditItemTemplate>
       <asp:DropDownList ID=”dep”
Runat=”server”></asp:DropDownList>
      </EditItemTemplate>
</asp:TemplateColumn>

在前台直接助长事件DropDownList二_SelectedIndexChanged

下一场在后台添加事件就足以了

protected void DropDownList2_SelectedIndexChanged(object sender,
System.EventArgs e)
  {
   Response.Write(((DropDownList)sender).SelectedItem);
  }

小心,事件不可能是private的,这里的sender正是其一下拉框,类型转换一下就能应用了


页面一的代码,再点击“下载”事件之中写  
  string   SavePath   =   Convert.ToString(db.yourpath);  
  if(!File.Exists(SavePath))   return;  
  string   Url   =   Request.ApplicationPath;  
  Url   +=   “/youDir/FileDownload.aspx?path=”;  
  Url   +=  
HttpUtility.UrlEncode(SavePath)+”&&type=”+Convert.ToString(db.yourFileType);  
  this.Server.Transfer(Url);  
   
 
那就是您那么的贮存情势了。首先取得你的源文件所在的地方然后检查这些路子是还是不是留存,借使存在的话就让一个干净的网页来下载你的公文。  
  页面贰代码:在pageLoad事件之中写  
  string   filePath   =   Request.QueryString[“path”];  
  string   fileType   =   Request.QueryString[“type”];  
  string   fileName   =   Path.GetFileName(filePath);  
  FileStream   fs   =   File.OpenRead(filePath);  
  this.Response.ContentType   =   fileType;  
  Response.AddHeader(“Content-Disposition:”,   “attachment;  
filename=”   +   HttpUtility.UrlEncode(fileName));    
   
  int   count     =   0;  
  int   length   =   (int)fs.Length;  
  byte[]   buf   =   null;  
  fs.Position   =   0;  
  while(count   <length-1)  
  {  
  if(length   –   count-1   >=100)  
  {  
  buf   =   new   byte[100];  
  }  
  else  
  {  
  buf   =   new   byte[length   –   count-1];  
  }  
  count   +=   buf.Length;  
  fs.Read(buf,0,buf.Length);  
  this.Response.BinaryWrite(buf);  
  //offset   =   (int)fs.Position+1;  
  }  
  fs.Close();  
  //br.Close();  
  this.Response.Flush();  
   
 
那样的补益是用户并未有章程知道你的路子是哪些,因为是您在劳务器端从数据库中写的,而且传输到客户端的。记得要抬高System.IO的引用

记得页面2里面除了Page指令之外的富有标记都要删减干净,不然你的txt文件就不能够获取正确的剧情,别的文件并没反常。那也是干什么一定要让下载文件放到页面二的来头。

不要求使用模板列,使用普通的一声令下按钮列就足以了!  
  private   void   Dtg_FileList_ItemCommand(object   source,  
System.Web.UI.WebControls.DataGridCommandEventArgs   e)  
  {  
  if(e.CommandName   ==   “Download”)  
  {  
  string   wdbh   =   e.Item.Cells[0].Text;  
  //通过wdbh获取db,然后  
  string   SavePath   =   Convert.ToString(db.yourpath);  
  if(!File.Exists(SavePath))   return;  
  string   Url   =   Request.ApplicationPath;  
  Url   +=   “/youDir/FileDownload.aspx?path=”;  
  Url   +=  
HttpUtility.UrlEncode(SavePath)+”&&type=”+Convert.ToString(db.yourFileType);  
  this.Server.Transfer(Url);  
  }  
  }

DataGrid中贯彻点击删除按钮出现“分明删除吗”提醒框???

private   void   dgrd_zs_ItemDataBound_1(object   sender,  
System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
  foreach(Control   con   in   e.Item.Cells[6].Controls)  
  {  
  if(con.ToString()==”System.Web.UI.WebControls.DataGridLinkButton”)  
  {  
  System.Web.UI.WebControls.LinkButton  
lbtn=(System.Web.UI.WebControls.LinkButton)con;  
  lbtn.Attributes.Add(“onclick”,   “return  
confirm(‘您明确删除该条记录吗?’)”);  
  }  
  }  
  }

 

          var modulesValue =
ddl_modules.options[ddl_modules.selectedIndex].value;

2.     点击超链接弹出此外2个页面并且决定页面包车型地铁地点和尺寸,使用javascript完成。例如:打开添加新的记录的页面,并且安装中度,宽度,地方,无工具栏,无菜单,无滚动条等。

 

 DataGrid中使用Button操作
首先在Datagrid里安装OnItemCommand事件,指向处理函数,然后在模板列加button,设置button的CommandName属性,在后台依据CommandName来判断点击了尤其button,并拓展处理。
 

  <asp:DataGrid id=”DataGrid1″ runat=”server”
OnItemCommand=”itemComm”>
    <Columns>
     <asp:TemplateColumn HeaderText=”比较1″>
      <ItemTemplate>
       <asp:Label id=Button2 runat=”server”>
        <%# DataBinder.Eval(Container.DataItem,”id”)+@”/”+
DataBinder.Eval(Container.DataItem,”project”)%>
       </asp:Label>
      </ItemTemplate>
     </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText=”比较2″>
     <ItemTemplate>
      <asp:Button ID=btn1 Runat=server CommandName=”test1″
Text=<%# DataBinder.Eval(Container.DataItem,”id”)%>>
      </asp:Button>
     </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText=”比较3″>
     <ItemTemplate>
      <asp:Button ID=”Button3″ Runat=server CommandName=”test2″
Text=<%# DataBinder.Eval(Container.DataItem,”id”)%>>
      </asp:Button>
     </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
   </asp:DataGrid>

后台的函数:

public void itemComm(object sender,DataGridCommandEventArgs e)
  {
   switch(Convert.ToString(((Button)e.CommandSource).CommandName))
   {
    case “test1”:
     this.button1.Text=e.Item.ItemIndex.ToString();
     break;
    case “test2”:
     this.button1.Text=e.Item.ID.ToString();
     break;
   }

 

知识点滴:

DataGrid中绑定javascript事件,完毕删除提示和转移背景观
private void dgSearch_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
 if(e.Item.ItemType==ListItemType.Item
||e.Item.ItemType==ListItemType.AlternatingItem)
        /*看清是或不是为常规项和更替项*/
 {
 
e.Item.Attributes.Add(“onmouseover”,”c=this.style.backgroundColor;this.style.backgroundColor=’#bfdcff'”);
                /*给健康项(即每1列)添加onmouseover事件*/
  e.Item.Attributes.Add(“onmouseout”,”this.style.backgroundColor=c”);
                /*给平时项(即每1列)添加onmouseout事件*/
  /*上述两行完成转移背景观*/
 
((LinkButton)e.Item.FindControl(“lbtnDel”)).Attributes.Add(“onClick”,”return
confirm(‘明确要去除吗?’)”);
  /*给删除按钮添加单击事件,实现删除前提示*/
 }
}
posted

 

里面commandName与后面包车型大巴事件RowCommand有关联,能够一贯获得重点字c_khbh.

为LinKbutton添加单击事件和转换所选项背景颜色

          window.showModalDialog(‘PageAdd.aspx?isAdd=0&SystemID=’ +
sysValue + ‘&ModulesID=’ + modulesValue + ‘&ID=’ + obj, null,
‘dialogHeight:600px;dialogWidth:650px;status:0;help:0 ‘);

明天没写日志,只能把脑子里还剩余的知识存到此处了。

<ItemTemplate>
<a href=’download.aspx?DocTitle=<%#
DataBinder.Eval(Container.DataItem,”DocTitle”) %>’>
 <%# DataBinder.Eval(Container.DataItem,”DocTitle”) %>
</a>
</ItemTemplate>

          var ddl_modules = document.getElementById(“ddl_modules”);

protected
void Page_Load(object sender, EventArgs e)

贯彻模版列有超连接外观,一点贯彻打开或然下载的机能。

三、刷新父页面

解决办法:找到调试的站点根目录,删除当中的app_offline.htm文件。

 
 
在DataGrid中国建工业总会公司二个模板列,在模板列中放3个客户端的Button,可能直接写你要的词句,然后用<a
href>连接
例:
<TABLE id=”Table1″ cellSpacing=”0″ cellPadding=”0″ width=”100%”
align=”center” border=”0″>
    <TR>
     <TD width=”100%”>
      <asp:datagrid id=”dgFreightInfo” runat=”server” Width=”96%”
GridLines=”Horizontal” AllowCustomPaging=”True”
       AllowPaging=”True” AutoGenerateColumns=”False” DataKeyField=”id”
BorderColor=”White” BorderWidth=”1px”
       PageSize=”20″>
       <ItemStyle Height=”25px”
BackColor=”#F7F7F7″></ItemStyle>
       <HeaderStyle Font-Bold=”True” HorizontalAlign=”Center”
Height=”25px” BackColor=”#E8E8E8″></HeaderStyle>
       <Columns>
        <asp:TemplateColumn>
         <ItemTemplate>
          <A href=’javascript:onclick=LoadFreight(<%#
DataBinder.Eval(Container,”DataItem.id”)%>)’>
           详细音信</A>
         </ItemTemplate>
        </asp:TemplateColumn>
       </Columns>
      </asp:datagrid>
     </TD>
    </TR>
接下来写1个JavaScript方法
<script language=”javascript”>
function LoadFreight(id)//id为传进的参数
{
 var url=’url.aspx?tid=’+id+”;
 window.open(url,”,’scrollbars=yes,top=0,left=0,resizable=no,status=no,toolbar=no,menubar=no,location=no,width=430,height=600′);
}
</script> 
 

          var sysValue =
ddl_sys.options[ddl_sys.selectedIndex].value;

            Client.Ckhbh = Convert.ToInt32(e.CommandArgument);

  <script type="text/javascript">  
    function getSelected() {  
      var data = [];  
      ch = document.getElementsByName("t")  
      for (i = 0; i < ch.length; i++) {  
        if (ch[i].checked) {  
          data.push(ch[i].value);            
        }  
      }  
      window.returnValue = data.toString();  
      window.close();  
    }  
  </script> 

3.要想在gridView中添加壹列“详细”链接到二个新的网页呈现客户的详细消息,能够在.aspx文件中添加模板列:

<asp:Button ID=”Button1″ runat=”server” OnClientClick=”getSelected();return false;” Text=”Button” />

window.opener.location.reload();

父页面:

int
deleteID = Convert.ToInt32(e.Item.DataKeys[“ID”]);

 

     </asp:TemplateField>

 

7.查资料的时候在网上来看了几条往gridView中添加确认对话框的法子,未有试过,可是大概今后会用获得吧。

 

 

<script type=”text/javascript”>  
  function openDia() {  
    var returned = window.showModalDialog(“UserList.aspx?” + (new Date()), window);  
    if (returned) {  
      document.getElementById(“ret”).innerHTML = returned;  
    }  
    else {  
      document.getElementById(“ret”).innerHTML = “”;   
    }  
  }  
</script> 

    {

2、弹出贰个置顶的新页面,新页面关闭后刷新父页面

后来改良了一晃那段代码终于化解了,可是依旧不太懂,先保留下来之后逐年学习啊。

          var ddl_sys = document.getElementById(“ddl_system”);

    }

 

 

      } 

陆.     假使想在新弹出的网页中单击多个按钮关闭该网页的话,只需选取:

一、弹出新页面,置顶

4.     使用表格进行布局的时候。本来小编布局时想使用.net工具栏中的table控件就好了。但是后来本身发现好不不难放进控件之后整个表格及其内部的控件就成了二个完好无缺了。真的很不佳使用。后来意识干脆依旧使用html好了,直接采取最原始的<table><tr><td></td></tr></table>.就足以任意选中内部添加的控件并且安装其性质了。

 子页面:

}

JavaScript:

透过一个多星期的拼命,小编和柳颖终于各自做完了最最简易的3个小模块。想想即使劳动成果看上去很不起眼,可是在那些进度里面真是辛勤啊,天天蒙受的难点和门槛数都数不清。真想都记载下来,然而回头就又想不起来了。

 

自然想天天写一篇日记来记录自个儿的实习心得和所学到的文化,然而照旧不曾可以持之以恒下去啊。一转眼本人的日记都空了好几天了。

 

明天早晨还不易,项目又有了好几开展,比做第2局地的时候快多了。就算仍然会赶上一些难点,不过到底好多地方跟从前的有的相比较相似。很乐意的是前日遗留的插入薪记录后自行刷新父页面的难点到底解决了。

 

window.onunload
= function(){

function update(obj) {

        if (e.CommandName == “detail”)

Button:

        txtID .Attributes .Add
(“onfocus”,”this.value=” “);

 4、

window.onunload
= function(){

 window.location.reload()

  1. 前日做的插入维修项目有些,由于根本字不是半自动编号,手工业输入时只怕会爆发再度插入的处境。所以要先检查测试一下,即便已经存在自己想把提醒消息放到项目编号的文本框里。当再另行输入时,一点击就自动清空。

 

return
confirm(‘您承认删除要删除么?’)

 <a href=”javascript:showModalDialog(‘UserList.aspx’);window.location.reload()”>aaaaa</a>

 

2008年十八月二三十一日星期肆

伍.     后天才发现本人原来连不难超链接标记<a>都不是太会用吗。原来直接链接到同一个文本夹下的另三个网页时从来运用类似:

<input
type =”button” 
value =”退出”  onclick =’window.close()’ />

window.opener.location.href=window.opener.location.href;

然则当对象网页在父目录下的别的1个文件夹下时,查了一下才会写路径的不2秘诀了:

3.     怎么样在五个新页面中输入查询条件而在原来窗口的gridView中显得查询的结果吧?初阶小编怎么都不精通应该触发父窗口的怎么风云,后来到底想到了八个办法:

<a
href =”../Maintain/dispItem.aspx”>维修项目</a>

             <asp:LinkButton ID=”LinkButton1″ runat=”server” CausesValidation=”False” CommandArgument='<%#
Eval(“c_khbh”) %>’                                  
CommandName=”detail” Text=”详细”></asp:LinkButton>

在网上搜到了化解的主意,让自家出人意料的又长了个知识。

设若大家的CommandField中ButtonType是Button的话,那段代码就失效了。小编想了下,能够由此将其转移为模板列的方法来消除。

if(e.CommandName
== “delete”)

<Columns

        {

   <script language=”javascript”>

<a   onclick =”javascript:varwin=window.open(‘AddClient.aspx?ID={0}’,”,
‘height=500, width=350, top=0,left=0, toolbar=no, menubar=no,
scrollbars=no,resizable=no,location=no, status=no’);” style=”text-decoration: underline” >添加</a>

2010年十10月5日周一

            Response.Redirect(“detailClientt.aspx”);

应用javascript使文本框获得核心后活动清空:

protected
void GridView2_RowCommand(object sender, CommandEventArgs e)

 “不重复发送新闻,则无从刷新网页”

<div
id=”de” onclick=”JavaScript:return confirm(‘鲜明删除吗?’)”>删除</div>

        <ItemTemplate >

运用../就可以抵达父目录下了。

</Columns>

⑴.为gridview添加确认对话框:

{

理所当然认为化解了难题,正手舞足蹈的测试的时候发现了二个标题,尽管一般景观下能够科学的自行刷新,可是只要先删除一条记录然后在拓展插队的话就会产生难题,弹出四个会话框,提示重试或然撤回。

}

<a
href=”addClient.aspx”>添加</a>

//那里依照取得的方今去除行的ID来调用相应的去除方法就能够了

前两日师兄让自个儿写了份数据库设计表达书,又给本人提了点修改意见,作者才发现本身确实有无数设想不全面包车型地铁地方,经过修改数据库之后接下去应该会省好多事呢。

1.     前日正编着代码的时候,瑞星更新完结,笔者都没看就点击了鲜明才察觉重启了。不过运转今后再运维程序依旧出现了下列卓殊:This
application is currently offline. To enable the application, remove the
app_offline.htm file from the application root directory.

  1. 为了刷新父页面,开头的时候在插入记录的子页面包车型客车head标记内添加了之类代码:

}
</script>

前天始发做第三个模块了,作者做的是维修项指标有的,本来和率先部分特别像,作者觉着做起来会很方便呢,没悟出居然刚形成新增记录部分就又遇上难点了。怎么都想不起来怎么在插入记录之后自动刷新父页面举办展现,还得点一下刷新按钮才行。找了半天前边的代码也没想起来,真是郁闷,笔者都打结这是自家自个儿做的吧,晕!

在类client中采纳一个暗含了客户信息各种字段的结构体,并且1律使用静态全局变量。那样就足以开始展览参数的传递了。而且选择了1个静态布尔型变量来检查测试父窗口form_load事件是摸索结果或许简单将客户表绑定后显示。当要来得查询的结果时将其置为true.

</script>

        </ItemTemplate>

接下来在DataGrid控件的ItemCommand事件中展开判断是还是不是是点击了剔除按钮,那里就必要经过大家前边定义的CommandName属性值来差距了:

  <asp:TemplateField >

知识点滴:

 

        }

   <script language=”javascript”>

    }

、近来已知的最精简的措施,如图,在剔除按钮的那一列属性之中,把DeleteText属性设为

先将该字段转换到模板,然后编辑那么些模板列,选中用于删除的Button,将其onClientClick属性设为

  window.location.reload;