佚枫吧 关注:14贴子:2,987
  • 8回复贴,共1

【技术贴】关于gridview的种种

只看楼主收藏回复

之前也了解过不少,只是好久不用都忘记了,最初用的最溜的控件就是他了,不过现在就现学现卖了~


通过百度相册上传1楼2013-11-05 10:07回复
    遍历整个gridview的行,寻找每行的控件
    foreach (GridViewRow g in grv.Rows)
    {
    CheckBox ck = (CheckBox)g.FindControl("chkCheck");
    if (ck.CssClass == k)//CssClass是外部绑定的属性,例如<%#Eval("**")%>
    {
    ck.Checked = true;
    }
    ck.Enabled = false;
    }


    2楼2013-11-05 10:41
    回复
      2025-08-10 23:06:32
      广告
      不感兴趣
      开通SVIP免广告
      gridview表格中控件的click事件,并获取该控件
      protected void chkCheck_CheckedChanged(object sender, EventArgs e)
      {
      CheckBox ck = (CheckBox)sender;
      GridViewRow gvr = ck.NamingContainer as GridViewRow;
      CheckBox chk = (CheckBox)gvr.Cells[9].FindControl("chkCheck0");
      if (ck.Checked == true)
      {
      chk.Enabled = false;
      }
      else
      {
      chk.Enabled = true;
      }
      }


      3楼2013-11-05 16:59
      回复
        GridView中模板列中的控件 获取所在行
        protected void LinkButton1_Click(object sender, EventArgs e)
        {
        LinkButton linkbutton = sender as LinkButton;
        GridViewRow gvr = linkbutton.NamingContainer as GridViewRow;
        CheckBox chk=(CheckBox)gvr.FindControl("chkSelect");
        }
        这个时候可以通过chk变量获取改行控件chkSelect的属性


        4楼2013-11-05 17:11
        收起回复
          结合ScriptManager和UpdatePanel,实现Gridview内部局部刷新
          <asp:ScriptManager ID="ScriptManager1" runat="server">
          </asp:ScriptManager>
          <asp:UpdatePanel ID="UpdatePanel1" runat="server">
          <ContentTemplate>
          <asp:GridView ID="grvApply" runat="server" AutoGenerateColumns="False"
          Width="783px">
          <Columns>
          《%此部分为gridview内部内容,可以有控件,控件可以回发,控件每次回发都是gridview内部在刷新,页面内除gridview部分外,均不刷新%》
          </Columns>
          </asp:GridView>
          </ContentTemplate>
          </asp:UpdatePanel>


          5楼2013-11-05 17:17
          回复
            web页面实现打印功能【从csdn获得方法,留着用,方法也测试,可以使用】
            <script language="javascript" type="text/javascript">
            var HKEY_Root, HKEY_Path, HKEY_Key;
            HKEY_Root = "HKEY_CURRENT_USER";
            HKEY_Path = "\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
            //设置网页打印的页眉页脚为空
            function PageSetup_Null() {
            try {
            var Wsh = new ActiveXObject("WScript.Shell");
            HKEY_Key = "header";
            Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, "");
            HKEY_Key = "footer";
            Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, "");
            }
            catch (e)
            { }
            }
            function printpage(myDiv){ //DIV控制打印
            //var newstr = document.all.item(myDiv).innerHTML;
            var newstr = document.getElementById(myDiv).innerHTML;
            // alert(newstr);
            var oldstr = document.body.innerHTML;
            document.body.innerHTML = newstr;
            window.print();
            document.body.innerHTML = oldstr;
            return false;
            }
            function preview() {
            PageSetup_Null();
            bdhtml=window.document.body.innerHTML;
            sprnstr="<!--startprint-->";
            eprnstr="<!--endprint-->";
            prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
            prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
            window.document.body.innerHTML=prnhtml;
            window.print();
            }
            </script>
            <input class="Noprn" type="button" onclick="window.print()" value="打印"/>
            <input type="button" name="print" value="预览并打印" onclick="preview()"/>
            <input type="button" id="bt" onclick="javascript:printpage('myDiv')" value="DIV打印" />
            有三种形式,直接打印,预览打印,DIV形式的打印


            6楼2013-11-05 17:19
            回复
              GridView分页的实现


              要在GridView属性中将以下属性改为相应值
              //实现分页
              AllowPaging="true"
              //一页数据10行
              PageSize="10"
              // 分页时触发的事件
              OnPageIndexChanging="GridView1_PageIndexChanging"
              protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
              {
              // 得到该控件
              GridView theGrid = sender as GridView;
              int newPageIndex = 0;
              if (e.NewPageIndex==-3)
              {
              //点击了Go按钮
              TextBox txtNewPageIndex = null;
              //GridView较DataGrid提供了更多的API,获取分页块可以使用BottomPagerRow 或者TopPagerRow,当然还增加了HeaderRow和FooterRow
              GridViewRow pagerRow = theGrid.BottomPagerRow;
              if (pagerRow != null)
              {
              //得到text控件
              txtNewPageIndex = pagerRow.FindControl("txtNewPageIndex") as TextBox;
              }
              if ( txtNewPageIndex!= null)
              {
              //得到索引
              newPageIndex = int.Parse(txtNewPageIndex.Text) - 1;
              }
              }
              else
              {
              //点击了其他的按钮
              newPageIndex = e.NewPageIndex;
              }
              //防止新索引溢出
              newPageIndex = newPageIndex < 0 ? 0 : newPageIndex;
              newPageIndex = newPageIndex >= theGrid.PageCount ? theGrid.PageCount - 1 : newPageIndex;
              //得到新的值
              theGrid.PageIndex = newPageIndex;
              //重新绑定
              GridView1.DataSource = dt;//dt代表数据
              GridView1.DataBind();
              }


              本楼含有高级字体7楼2013-12-06 18:18
              收起回复