cool cool 狮子洋!

童心无限。创造无限。快乐无限。
随笔 - 4, 文章 - 0, 评论 - 34, 引用 - 0
数据加载中……

DataGrid全编辑.

好可怜哦.我在csdn上发表的关于DataGrid全编辑帖子不见了.
首先说明的是,我的思路参考自msdn中文网站的技术顾问陈敬希在webcast上的datalist全编辑.由于平时我自己用得比较多的是DataGrid,所以就想能不能实现DataGrid全编辑.
试验的时候想着肯定是可以实现的,只不过容不容易的问题.在不断尝试下终于搞掂了.很开心.然后就发表在csdn上跟大家分享.可惜这个帖子现在不在了.

<asp:checkbox id="cbGoal" Text="进球" runat="server" ForeColor="White" Checked="True"></asp:checkbox><asp:button id="btnUpdate" Text="更新比分" runat="server"></asp:button><asp:listbox id="lbSelect" runat="server" Rows="1">
 <asp:ListItem Value="显示">后台显示所有比分</asp:ListItem>
 <asp:ListItem Value="后台" Selected="True">后台显示所选 比分</asp:ListItem>
 <asp:ListItem Value="1">前台显示所选比分</asp:ListItem>
 <asp:ListItem Value="0">前台隐藏所选比分</asp:ListItem>
 <asp:ListItem Value="删除">删除所选比分</asp:ListItem>
</asp:listbox><asp:button id="btnSubmit" Text="确定" runat="server"></asp:button><asp:listbox id="lbSelectMatchstate" runat="server" Rows="1">
 <asp:ListItem Value="上">上半场所选比分</asp:ListItem>
 <asp:ListItem Value="半">半场所选比分</asp:ListItem>
 <asp:ListItem Value="下">下半场所选比分</asp:ListItem>
 <asp:ListItem Value="完">完场所选比分</asp:ListItem>
</asp:listbox><asp:button id="btnSure" Text="确定" runat="server"></asp:button><asp:button id="btnSort" Text="前台排序" runat="server" Width="88px"></asp:button><asp:datagrid id="liveScoresGrid" runat="server" DataKeyField="MatchID" BorderColor="#000000"
 ItemStyle-ForeColor="#336699" ItemStyle-Height="25" AutoGenerateColumns="False" ForeColor="#003366" BackColor="#336699" ItemStyle-BackColor="#336699">
 <Columns>
  <asp:TemplateColumn>
   <HeaderTemplate>
    <asp:CheckBox id="chkAllServer" runat="server" AutoPostBack="True"></asp:CheckBox>
   </HeaderTemplate>
   <ItemTemplate>
    <asp:CheckBox id="chkMatchID" runat="server" AutoPostBack="False"></asp:CheckBox>
   </ItemTemplate>
  </asp:TemplateColumn>
  <asp:TemplateColumn HeaderText="联赛">
   <HeaderStyle Wrap="False"></HeaderStyle>
   <ItemStyle BackColor="#336699" Wrap="False"></ItemStyle>
   <ItemTemplate>
    <asp:textbox runat="server" Id="ShortLeagueName" BackColor="#99ccff" size=5 Text='<%# DataBinder.Eval(Container,"DataItem.ShortLeagueName")%>'/>
   </ItemTemplate>
  </asp:TemplateColumn>
  <asp:TemplateColumn HeaderText="时间">
   <HeaderStyle Wrap="False"></HeaderStyle>
   <ItemStyle BackColor="#336699" Wrap="False"></ItemStyle>
   <ItemTemplate>
    <asp:textbox runat="server" Id="MatchTime" BackColor="#99ccff" size=5 Text='<%# DataBinder.Eval(Container,"DataItem.MatchTime")%>' onchange="javascript:this.parentElement.parentElement.cells(0).children(0).checked=true;"/>
   </ItemTemplate>
  </asp:TemplateColumn>
  <asp:TemplateColumn HeaderText="对赛队伍">
   <HeaderStyle Wrap="False"></HeaderStyle>
   <ItemStyle BackColor="#336699" Wrap="False"></ItemStyle>
   <ItemTemplate>
    <asp:textbox runat="server" Id="HostName" BackColor="#99ccff" size=5 Text='<%# DataBinder.Eval(Container,"DataItem.HostName")%>' onchange="javascript:this.parentElement.parentElement.cells(0).children(0).checked=true;"/>
   </ItemTemplate>
  </asp:TemplateColumn>
  <asp:TemplateColumn HeaderText="比分">
   <HeaderStyle Wrap="False"></HeaderStyle>
   <ItemStyle BackColor="#336699" Wrap="False"></ItemStyle>
   <ItemTemplate>
    <asp:textbox runat="server" Id="MatchScores" ForeColor="#ff0033" BackColor="#99ccff" size=5 Text='<%# DataBinder.Eval(Container,"DataItem.MatchScores")%>' onchange="javascript:this.parentElement.parentElement.cells(0).children(0).checked=true;"/>
   </ItemTemplate>
  </asp:TemplateColumn>
  <asp:TemplateColumn HeaderText="对赛队伍">
   <HeaderStyle Wrap="False"></HeaderStyle>
   <ItemStyle BackColor="#336699" Wrap="False"></ItemStyle>
   <ItemTemplate>
    <asp:textbox runat="server" Id="CustomerName" BackColor="#99ccff" size=5 Text='<%# DataBinder.Eval(Container,"DataItem.CustomerName")%>' onchange="javascript:this.parentElement.parentElement.cells(0).children(0).checked=true;"/>
   </ItemTemplate>
  </asp:TemplateColumn>
  <asp:TemplateColumn HeaderText="半场">
   <HeaderStyle Wrap="False"></HeaderStyle>
   <ItemStyle BackColor="#336699" Wrap="False"></ItemStyle>
   <ItemTemplate>
    <asp:TextBox id=HalfScores runat="server" ForeColor="#ff0033" BackColor="#99ccff" Text='<%# DataBinder.Eval(Container, "DataItem.HalfScores") %>' size=5 onchange="javascript:this.parentElement.parentElement.cells(0).children(0).checked=true;"/>
    </asp:TextBox>
   </ItemTemplate>
  </asp:TemplateColumn>
  <asp:TemplateColumn HeaderText="日期">
   <HeaderStyle Wrap="False"></HeaderStyle>
   <ItemStyle BackColor="#336699" Wrap="False"></ItemStyle>
   <ItemTemplate>
    <asp:textbox runat="server" Id="MatchDate" BackColor="#99ccff" size=10 Text='<%# DataBinder.Eval(Container,"DataItem.StartTime")%>' onchange="javascript:this.parentElement.parentElement.cells(0).children(0).checked=true;"/>
   </ItemTemplate>
  </asp:TemplateColumn>
  <asp:TemplateColumn HeaderText="主红数">
   <HeaderStyle Wrap="False"></HeaderStyle>
   <ItemStyle BackColor="#336699" Wrap="False"></ItemStyle>
   <ItemTemplate>
    <asp:textbox runat="server" Id="HostRedCardNum" ForeColor="#ff0033" BackColor="#99ccff" size=3 Text='<%# DataBinder.Eval(Container,"DataItem.HostRedCardNum")%>' onchange="javascript:this.parentElement.parentElement.cells(0).children(0).checked=true;"/>
   </ItemTemplate>
  </asp:TemplateColumn>
  <asp:TemplateColumn HeaderText="客红数">
   <HeaderStyle Wrap="False"></HeaderStyle>
   <ItemStyle BackColor="#336699" Wrap="False"></ItemStyle>
   <ItemTemplate>
    <asp:textbox runat="server" Id="CustomerRedCardNum" ForeColor="#ff0033" BackColor="#99ccff" size=3 Text='<%# DataBinder.Eval(Container,"DataItem.CustomerRedCardNum")%>' onchange="javascript:this.parentElement.parentElement.cells(0).children(0).checked=true;"/>
   </ItemTemplate>
  </asp:TemplateColumn>
 </Columns>
</asp:datagrid>

关键代码:
private void btnUpdate_Click(object sender, System.EventArgs e)
  {
   DataAccess.DB db=new DataAccess.DB();
   foreach (DataGridItem i in this.liveScoresGrid.Items)
   {

    CheckBox cb = (CheckBox)i.FindControl("chkMatchID");

    if(cb.Checked)
    {
     BusinessRules.LiveScores liveScores=new BusinessRules.LiveScores();
     liveScores.matchID=Convert.ToInt32(liveScoresGrid.DataKeys[i.DataSetIndex]);
     liveScores.shortLeagueName=((TextBox)i.FindControl("ShortLeagueName")).Text;
     liveScores.matchTime=((TextBox)i.FindControl("MatchTime")).Text;
     liveScores.hostName=((TextBox)i.FindControl("HostName")).Text;
     liveScores.matchScores=((TextBox)i.FindControl("MatchScores")).Text;
     liveScores.customerName=((TextBox)i.FindControl("CustomerName")).Text;
     liveScores.halfScores=((TextBox)i.FindControl("HalfScores")).Text;
     liveScores.startTime=Convert.ToDateTime(((TextBox)i.FindControl("MatchDate")).Text);
     liveScores.hostRedCardNum=Convert.ToInt32(((TextBox)i.FindControl("HostRedCardNum")).Text);
     liveScores.customerRedCardNum=Convert.ToInt32(((TextBox)i.FindControl("CustomerRedCardNum")).Text);
     if(cbGoal.Checked)
     {
      string sql="EXEC UpdateLiveScores_Goal ";
      sql+=liveScoresGrid.DataKeys[i.DataSetIndex].ToString();
      sql+=","+1;
      db.ExeQuery(sql);
       
      
     }
     else
     {
      string sql="EXEC UpdateLiveScores_Goal ";
      sql+=liveScoresGrid.DataKeys[i.DataSetIndex].ToString();
      sql+=","+0;
      db.ExeQuery(sql);
      
     }
     liveScores.UpdateScores();
     cb.Checked=false;
    }
    
                
   }
    Response.Write("<script language='javascript'>window.open('UpdateLiveScores.htm','update','height=400,width=400');</script>");
  }

最重要的是这句:onchange="javascript:this.parentElement.parentElement.cells(0).children(0).checked=true;"
源代码提供下载:http://www.kakai-info.com/web/alledit.rar

posted on 2004-06-06 23:11 狮子洋 阅读(3191) 评论(23)  编辑 收藏 网摘

评论

#1楼    回复  引用    

onchange="javascript:this.parentElement.parentElement.cells(0).children(0).checked=true;"


parentElement.parentElement. 是什么意思, 能不能说一下??
2004-06-07 15:24 | Michael.rao [未注册用户]

#2楼    回复  引用    

this 代表的是textbox
this.parentElement 代表的是 textbox 所在的单元格
this.parentElement.parentElement代表的是单元格所在的行
this.parentElement.parentElement.cells(0).children(0)代表的是checkbox
2004-06-07 15:57 | 狮子洋 [未注册用户]

#3楼    回复  引用  查看    

你在csdn中的这个贴我曾经看到过了。。

呵呵
2004-06-07 19:20 | chating      

#4楼    回复  引用    

我知道,我这个贴子在csdn上不见了.
而且我知道你是谁,你就是那位说我不会用电脑的人.
呵呵.
2004-06-07 21:14 | 狮子洋 [未注册用户]

#5楼    回复  引用    

呵呵!被我找到了!我原来收藏的!结构没有了!现在到这里来看!谢谢!
2004-06-24 11:19 | kangzhenkang [未注册用户]

#6楼    回复  引用    

能否提供sql脚本或数据库
2004-07-29 20:01 | 蓝月亮 [未注册用户]

#7楼    回复  引用    

不能下载了呀
2004-12-13 11:52 | wuxh [未注册用户]

#8楼    回复  引用    

this 代表的是textbox
this.parentElement 代表的是 textbox 所在的单元格
this.parentElement.parentElement代表的是单元格所在的行
this.parentElement.parentElement.cells(0).children(0)代表的是checkbox

哇靠,太感谢了。
2004-12-15 11:35 | gcdd [未注册用户]

#9楼    回复  引用    

To:wuxh

我已经离开了上家公司,所以之前提供的下载应该无效了.如果你需要的话,可以留下你的email
2004-12-16 09:08 | 狮子洋 [未注册用户]

#10楼    回复  引用    

我要啊。ioirwc@sina.com
2005-01-20 09:18 | ioirwc [未注册用户]

#11楼    回复  引用    

问一下怎么在 JAVASCRIPT 中得到控件在表格中的位置。即在哪个单元格里。现在我是在表格中有下拉列表。他的值怎么存到表格中。请教你们一下。知道的请留言。
2005-01-21 09:26 | ioirwc [未注册用户]

#12楼    回复  引用    

能否在给我发一份代码?非常感谢!

#13楼    回复  引用    

能否在给我发一份代码?非常感谢!
farsky@21cn.com

#14楼    回复  引用    

能否给我一份,最近正好碰上有客户这个需求

yourdj@sina.com
2005-04-10 23:23 | YouRdj [未注册用户]

#15楼    回复  引用    

急用请快给我发一份,谢谢
happyok8@163.com
2005-07-13 14:35 | z [未注册用户]

#16楼    回复  引用    

你好!能给我一份吗,我对DataGrid全编辑很有兴趣,我希望能分享你的成果,万分感谢!

my e_mai address: system7@zhtenko.com.cn
2005-11-17 11:15 | samson [未注册用户]

#17楼    回复  引用    

ҲҪлл
xiaogh_tom@163.com
2005-12-02 13:03 | me [未注册用户]

#18楼    回复  引用    

給我一份好嗎?
proliveygy@yahoo.com.cn
2005-12-17 18:50 | ygy [未注册用户]

#19楼    回复  引用    

我 也 想要,谢谢 大哥,大姐 lbp21156@126.com
2006-08-18 14:07 | bao [未注册用户]

#20楼    回复  引用    

应该不会来晚吧

sztxh@126.com
2006-08-24 20:46 | i [未注册用户]

#21楼    回复  引用    

给我份代码 先3Q
yidan_87@163.com
2006-09-07 17:32 | soul [未注册用户]

#22楼    回复  引用    

大哥,我現在寫的系統正需要啊,請給我一份.
sam_man@163.com
2006-09-07 20:26 | dsfd [未注册用户]

#23楼    回复  引用    

可以给我一分代码吗?感激啊。itprogramlife@126.com




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索
[推荐职位]上海盛大网络招聘架构师

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: