我把GridView放进Ajax中的UpdatePanel中,其中我在GridView最后一个字段加上了修改,删除2个LinkButton键
郁闷了,我点删除可以完成删除,但点修改必须点2次才可以进入修改界面。
我去掉UpdatePanel则没有问题所以我觉得问题在UpdatePanel这,但不知道在哪
另外,我取出数据库的数据放在GridView上,GridView我时间编辑了字段名称。这样数据取出来看的话更清晰。但是,我编辑的名称有的很长,这样在生成网页后他会换行,这样GridView就显得很胖,很难看,有没解决办法?就是下面这样名字   性别    年龄   家庭住址   (我希望是这样显示)名字   性别    年龄   家庭
                      地址       (但确实这样的,这样GridView就会很高,很胖的样子,很难看)求解答2个问题~~100分 

解决方案 »

  1.   

    UpdatePanel没怎么用过
    sfup
      

  2.   

    1,是不是程序上的问题?跟踪看看值
    2,<ItemStyle  Width="150px" />
      

  3.   

    1.请把前台代码贴出
    2.如果不想GridView 换行 给td 设一个Css样式就可以了word-break:keep-all,
      

  4.   

    <ItemStyle  Width="150px" />这句话写在  源  里那?
      

  5.   

    #region 完成更新功能
        protected void btnUpdateConfirm_Click(object sender, EventArgs e)
        {
            decimal cycleTypeKey = Convert.ToDecimal(this.btnUpdateConfirm.CommandArgument);
            RCycleType rc = ObjUtil.LoadObject<RCycleType>(cycleTypeKey);        rc.CycleTypeName = this.txtCycleTypeName.Text.Trim();
            rc.CycleUnit = this.ddlCycleUnit.Text;
            rc.CycleCode = this.txtCycleCode.Text;
            rc.IntervalNumber = Convert.ToInt32(this.txtIntervalNumbe.Text);
            rc.OffsetNumber = Convert.ToInt32(this.txtOffsetNumber.Text);
            rc.OffsetDay = Convert.ToInt32(this.txtOffsetDay.Text);        ObjUtil.UpdateObject(rc);        this.pnlQry.Visible = true;
            this.pnlDetail.Visible = false;
            this.btnUpdateConfirm.Visible = false;
            this.btnUpdateCancle.Visible = false;
                
            this.queryList();
        }
        #endregion 
        
        #region 更新取消
        protected void btnUpdateCancle_Click(object sender, EventArgs e)
        {
            this.pnlQry.Visible = true;
            this.pnlDetail.Visible = false;
            this.btnUpdateConfirm.Visible = false;
            this.btnUpdateCancle.Visible = false;
        }
        #endregion    #region 激发修改,删除事件
        protected void gvCycleType_DataBound(object sender, EventArgs e)
        {
            foreach (GridViewRow row in this.gvCycleType.Rows)
            {
                LinkButton lkbDelete = (LinkButton)row.FindControl("lkbDelete");
                LinkButton lkbUpdate = (LinkButton)row.FindControl("lkbUpdate");            lkbDelete.CommandArgument = row.RowIndex.ToString();
                lkbUpdate.CommandArgument = row.RowIndex.ToString();            lkbDelete.Attributes.Add("OnClick", "return confirm('确定要删除该类型吗?')");
            }
        }
        #endregion    #region 数据窗口中的Command操作
        protected void gvCycleType_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int rowIndex = Convert.ToInt32(e.CommandArgument);
            GridViewRow row = this.gvCycleType.Rows[rowIndex];        decimal cycleTypeId = Convert.ToDecimal(row.Cells[0].Text);
            RCycleType r = null;        switch (((LinkButton)e.CommandSource).ID)
            {
                case "lkbDelete":   //删除按钮
                    r = (RCycleType)ObjUtil.LoadObjectCritSingleA<RCycleType>("CycleTypeId", cycleTypeId);
                    ObjUtil.DeleteObject(r);
                    this.queryList();
                    break;            case "lkbUpdate":   //修改按钮
                    r = (RCycleType)ObjUtil.LoadObjectCritSingle(typeof(RCycleType), "CycleTypeId", cycleTypeId);                this.lblTitle.Text = "修改周期类型";                this.txtCycleTypeId.Text = r.CycleTypeId.ToString();
                    this.txtCycleTypeName.Text=r.CycleTypeName;
                    this.ddlCycleUnit.Text = r.CycleUnit;
                    this.txtCycleCode.Text= r.CycleCode;
                    this.txtIntervalNumbe.Text = r.IntervalNumber.ToString();
                    this.txtOffsetNumber.Text = r.OffsetNumber.ToString();
                    this.txtOffsetDay.Text = r.OffsetDay.ToString();
                                    this.btnUpdateConfirm.CommandArgument = r.KeyNum.ToString();                this.pnlQry.Visible = false;
                    this.pnlDetail.Visible = true;
                    this.txtCycleTypeId.Visible = true;
                    this.txtCycleTypeId.Enabled = false;
                    this.lblCycleTypeId.Visible = true;
                    this.btnUpdateConfirm.Visible = true;
                    this.btnUpdateCancle.Visible = true;                this.btnInsertConfirm.Visible = false;
                    this.btnInsertCancle.Visible = false;
                    break;            default:
                    break;
            }  
        }
        #endregion这是我的修改,删除功能代码
      

  6.   

    请把aspx的GridView的那段代码贴出。。
      

  7.   

    <asp:BoundField DataField="re" HeaderText="备注">
                        <ItemStyle HorizontalAlign="Left" Width="100px" />
                    </asp:BoundField>
      

  8.   

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                                                <ContentTemplate>
                                                    <cc1:OraclePager ID="OraclePager1" runat="server" />
                                            <asp:GridView ID="gvCycleDefine" runat="server" AutoGenerateColumns="False" OnDataBound="gvCycleDefine_DataBound" OnRowCommand="gvCycleDefine_RowCommand">
                                            <Columns>
                                            <asp:BoundField HeaderText="周期标识" DataField="CycleId" />
                                            <asp:BoundField HeaderText="周期类型标识" DataField="CycleTypeId" />
                                            <asp:BoundField HeaderText="周期开始日期" DataField="StartDate" />
                                            <asp:BoundField HeaderText="周期结束日期" DataField="EndDate" />
                                            <asp:BoundField HeaderText="上一周期标识" DataField="LastCycleId" />
                                            <asp:BoundField HeaderText="状态" DataField="State" />
                                            <asp:BoundField HeaderText="状态日期" DataField="StateDate" />
                                            <asp:BoundField HeaderText="周期名称" DataField="CycleName" />
                                            <asp:BoundField HeaderText="上偏移量" DataField="LastOffset" />
                                            <asp:BoundField HeaderText="结束偏移量" DataField="EndOffset" />
                                            <asp:TemplateField HeaderText="操作">
                                                <ItemTemplate>
                                                    <asp:LinkButton ID="lkbUpdate" runat="server">修改</asp:LinkButton>
                                                    <asp:LinkButton ID="lkbDelete" runat="server">删除</asp:LinkButton>
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                             </Columns>
                                            </asp:GridView>
                                                </ContentTemplate>
                                            </asp:UpdatePanel>
      

  9.   


    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
                                                 <ContentTemplate> 
                                                     <cc1:OraclePager ID="OraclePager1" runat="server" /> 
                                             <asp:GridView ID="gvCycleDefine" runat="server" AutoGenerateColumns="False" OnDataBound="gvCycleDefine_DataBound" OnRowCommand="gvCycleDefine_RowCommand" OnRowEditing="gdvContent_RowEditing"> 
                                             <Columns> 
                                             <asp:BoundField HeaderText="周期标识" DataField="CycleId" /> 
                                             <asp:BoundField HeaderText="周期类型标识" DataField="CycleTypeId" /> 
                                             <asp:BoundField HeaderText="周期开始日期" DataField="StartDate" /> 
                                             <asp:BoundField HeaderText="周期结束日期" DataField="EndDate" /> 
                                             <asp:BoundField HeaderText="上一周期标识" DataField="LastCycleId" /> 
                                             <asp:BoundField HeaderText="状态" DataField="State" /> 
                                             <asp:BoundField HeaderText="状态日期" DataField="StateDate" /> 
                                             <asp:BoundField HeaderText="周期名称" DataField="CycleName" /> 
                                             <asp:BoundField HeaderText="上偏移量" DataField="LastOffset" /> 
                                             <asp:BoundField HeaderText="结束偏移量" DataField="EndOffset" /> 
                                             <asp:TemplateField HeaderText="操作"> 
                                                 <ItemTemplate> 
                                                     <asp:LinkButton ID="lkbUpdate" runat="server" CommandName="Edit">修改 </asp:LinkButton> 
                                                     <asp:LinkButton ID="lkbDelete" runat="server">删除 </asp:LinkButton> 
                                                 </ItemTemplate> 
                                             </asp:TemplateField> 
                                              </Columns> 
                                             </asp:GridView> 
                                                 </ContentTemplate> 
                                             </asp:UpdatePanel>//编辑
        protected void gdvContent_RowEditing(object sender, GridViewEditEventArgs e)
        {
            
            GridViewRow row = gdvContent.Rows[e.NewEditIndex];        decimal cycleTypeId = Convert.ToDecimal(row.Cells[0].Text); 
            RCycleType r = null; 
    ......
        }
      

  10.   

    你的做法好怪啊
    <asp:TemplateField HeaderText="操作"> 
        <ItemTemplate> 
            <asp:LinkButton ID="lkbUpdate" runat="server">修改 </asp:LinkButton> 
            <asp:LinkButton ID="lkbDelete" runat="server">删除 </asp:LinkButton> 
        </ItemTemplate> 
    </asp:TemplateField> 
    这个为什么不做成
    <asp:TemplateField HeaderText="操作"> 
        <ItemTemplate> 
            <asp:LinkButton ID="lkbUpdate" runat="server" CommandName="Edit">修改 </asp:LinkButton> 
        </ItemTemplate> 
        <EditItemTemplate>
            <asp:LinkButton ID="lkbDelete" runat="server">删除 </asp:LinkButton> 
        </EditItemTemplate>
    </asp:TemplateField> 
      

  11.   

    加上: <HeaderStyle Wrap="False" />
    <asp:BoundField HeaderText="家庭住址" DataField="字段名" /> 
     <HeaderStyle Wrap="False" />
    </asp:BoundField>
      

  12.   

    另外header折行的试下
    HeaderStyle-Wrap="false"<asp:BoundField HeaderText="周期标识" DataField="CycleId" HeaderStyle-Wrap="false"/> 
      

  13.   

    请用GridView自带的Command事件,上面用的OnRowEditing
    还有OnRowDeleting ="" OnSelectedIndexChanged =""
    只要触发事件的是按钮,就可以给按钮设一个CommandName
    Edit,Delete,Select分别对应OnRowEditing,OnRowDeleting ,OnSelectedIndexChanged 事件
    在这些事件里都能拿到触发该事件的那行的索引,不需要在gvCycleType_DataBound中绑定行号,
    既简单又方便,何乐而不为呢?