2015-02-24 31 views
0

这是当我搜索一些东西后点击我的gridview时发生的情况,然后我的下一个命令是从gridview获取数据到文本框来编辑文件并再次保存,但是select命令不工作,因为它应该是..因为gridview正在重新加载,我过滤的文件不见了,它会选择gridview中的第一行,我该怎么办?这里是我选择命令的代码我每次点击一个按钮时会如何阻止我的页面重新加载?

void getValue() 
{ 
    // GridView1.SelectedIndex = isa; 
    //gridview1Connection(); 

    GridViewRow row = GridView1.SelectedRow; 
    T_firstname.Text = (row.FindControl("lbl_Firstname") as Label).Text; 
    T_middlename.Text = (row.FindControl("lbl_Middlename") as Label).Text; 
    T_lastname.Text = (row.FindControl("lbl_Lastname") as Label).Text; 
    T_age.Text = (row.FindControl("lbl_Age") as Label).Text; 
    T_id.Text = (row.FindControl("lbl_ID") as Label).Text; 
    string gender = (row.FindControl("lbl_Sex") as Label).Text; 

    if (gender == "FEMALE") 
    { 
     female_b.Checked = true; 
     male_b.Checked = false; 
    } 
    else 
    { 
     male_b.Checked = true; 
     female_b.Checked = false; 
    } 
} 

我应该使用IsPostBack还是viewstate?我将如何设置它或代码?

这里是我的gridview的

<asp:GridView ID="GridView1" runat="server" BackColor="White" BorderColor="#3366CC" 
    BorderStyle="None" BorderWidth="1px" CellPadding="4" AutoGenerateColumns="False" 
    onselectedindexchanged="GridView1_SelectedIndexChanged" Width="581px" 
    onrowcommand="GridView1_RowCommand" 
    onselectedindexchanging="GridView1_SelectedIndexChanging" 
    AutoGenerateSelectButton="True"> 
    <Columns> 
     <%--<asp:TemplateField ShowHeader="False"> 
      <ItemTemplate> 
       <asp:LinkButton ID="Select_button" CommandArgument ='<%# Eval("ID") %>' CommandName="SelectRow" ForeColor="#8C4510" runat="server">Select</asp:LinkButton> 
      </ItemTemplate> 
     </asp:TemplateField>--%> 

     <%-- <asp:CommandField ShowSelectButton="True"></asp:CommandField>--%> 
     <asp:TemplateField HeaderText="Firstname" SortExpression="Firstname"> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Firstname") %>'></asp:TextBox> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="lbl_Firstname" runat="server" Text='<%# Bind("Firstname") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Middlename" SortExpression="Middlename"> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Middlename") %>'></asp:TextBox> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="lbl_Middlename" runat="server" Text='<%# Bind("Middlename") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Lastname" SortExpression="Lastname"> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Lastname") %>'></asp:TextBox> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="lbl_Lastname" runat="server" Text='<%# Bind("Lastname") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Age" SortExpression="Age"> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("Age") %>'></asp:TextBox> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="lbl_Age" runat="server" Text='<%# Bind("Age") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Sex" SortExpression="Sex"> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("Sex") %>'></asp:TextBox> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="lbl_Sex" runat="server" Text='<%# Bind("Sex") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="ID" SortExpression="ID"> 
      <EditItemTemplate> 
       <asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("ID") %>'></asp:TextBox> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="lbl_ID" runat="server" Text='<%# Bind("ID") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 

    <FooterStyle BackColor="#99CCCC" ForeColor="#003399" /> 
    <HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" /> 
    <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" /> 
    <RowStyle BackColor="White" ForeColor="#003399" /> 
    <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" /> 
    <SortedAscendingCellStyle BackColor="#EDF6F6" /> 
    <SortedAscendingHeaderStyle BackColor="#0D4AC4" /> 
    <SortedDescendingCellStyle BackColor="#D6DFDF" /> 
    <SortedDescendingHeaderStyle BackColor="#002876" /> 

</asp:GridView> 
+1

使用ajax来做到这一点! – Zaki 2015-02-24 09:29:25

回答

0

你需要用在AJAX UpdatePanel您就地更新控制代码。

这应该表示当这些特定控件更新时,您的页面将不会重新加载。

0

您需要删除网格命令onselectedindexchanged =“GridView1_SelectedIndexChanged”或onselectedindexchanging =“GridView1_SelectedIndexChanging”之一。

相关问题