DataGrid全编辑

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")%>' οnchange="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")%>' οnchange="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")%>' οnchange="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")%>' οnchange="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 οnchange="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")%>' οnchange="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")%>' οnchange="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")%>' οnchange="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>");
  }

最重要的是这句:οnchange="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 狮子洋 阅读(2196) 评论(18)  编辑 收藏 收藏至365Key

# re: DataGrid全编辑.  回复   

this 代表的是textbox
this.parentElement 代表的是 textbox 所在的单元格
this.parentElement.parentElement代表的是单元格所在的行
this.parentElement.parentElement.cells(0).children(0)代表的是checkbox
#  这个onChange 事件, 在我那不起作用? 不知为什么   回复   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值