当触发onrowediting的时候,所有列都变成可编辑可修改,但是我只希望能改其中的一个列,其它列不允许修改
应该怎么设置啊?还是要代码写的???

解决方案 »

  1. 你是不是每个列都添加了修改的textbox?
      

  2. 我理你,呵呵。girdview直接启用编辑
      

  3. girdview编辑列设计里有个 readonly的属性 设为TRUE就不变了
      

  4. gridview 中的dropdownlist,要怎样才能获取当前项的value啊
      

  5. 你先用 FindControl的方法找到你的这个下拉框控件;然后在给它绑定上数据就OK了;
      

  6. 怎么取值呢?selectedvalue这个好象不对啊
      

  7. dropdownlist.selectedvalue
    dropdownlist.selectItem.value
    都不对的啊
      

  8. 在GridViewRowDataBound() 里
    DropdownList ddlMyList=e.Row.cells[i].FindControl("控件id") as DropdownList ;
      

  9. 对于GridView编辑那块,在面板设置的时候编辑列时记得有个ReadOnly属性,就是设定相应的只读属性为true就可以了。编辑时这一列就不会编辑了。至于DropDownList的问题,这是我自己写的
     protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
     
             DropDownList list = (DropDownList)(GridView1.Rows[e.RowIndex].Cells[0].FindControl("DropDownList1"));
             string result = list.SelectedItem.Text.ToString();
             GridView1.EditIndex = -1;
             DBBind();
             if (((Label)(GridView1.Rows[e.RowIndex].Cells[0].FindControl("Label1"))) != null)
             {
                 ((Label)(GridView1.Rows[e.RowIndex].Cells[0].FindControl("Label1"))).Text = result;
             }         
        }
    页面设置
     <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
                AutoGenerateColumns="False" onrowdatabound="GridView1_RowDataBound" 
                style="margin-left: 0px" onrowcancelingedit="GridView1_RowCancelingEdit" 
                onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating">
                <Columns>
                    <asp:TemplateField HeaderText="问题" SortExpression="Question">
                       
                        <EditItemTemplate>
                            <asp:HiddenField ID="HiddenField1" runat="server" Value='<%#Bind("Question") %>' />
                           <asp:DropDownList ID="DropDownList1" runat="server">
                            </asp:DropDownList>
                        </EditItemTemplate>
                         <ItemTemplate>
                             <asp:Label ID="Label1" runat="server" Text='<%#Bind("Question") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="ApplyDate" HeaderText="日期" />
                    <asp:CommandField ShowEditButton="True" />
                </Columns>
            </asp:GridView>
      

  10. protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
      {
      gv.EditIndex = e.RowIndex;
      int id = int.Parse(gv.DataKeys[e.RowIndex].Value.ToString());
        
      string str = ((TextBox)gv.Rows[e.RowIndex].FindControl("txt")).Text.Trim();
        
      gv.EditIndex = -1;
      BindData();
      }
    <asp:TemplateField HeaderText="性别" SortExpression="Gender">
            <ItemTemplate>
              <%#(Eval("Gender")).ToString() =="True"?"男":"女"%>
            </ItemTemplate>
            <EditItemTemplate>
              <asp:RadioButtonList ID="uGender" runat="server" RepeatDirection="Horizontal">
                <asp:ListItem Text="男"></asp:ListItem>
                <asp:ListItem Text="女"></asp:ListItem>
              </asp:RadioButtonList>
            </EditItemTemplate>
          </asp:TemplateField>
    设置编辑Linkbutton edit
      

  11. 首先把你不想编辑的列转换为模板,然后在网页的代码里面把EditItemTemplate这一列删除掉,这样就不会编辑了
      

类似问题 »