2012-07-31 2 views
0

사용자가 그리드의 RegionProjectName 필드를 클릭 할 때 쿼리 문자열에서 내 그리드의 RegionProjectID 열을 전달하려고합니다. RegionProjectname을 하이퍼 링크로 만들었고 코드 아래에서도 코드를 찾을 수 있습니다. 그러나 이것은 효과가 없습니다. 제게 제안하거나 그것이 왜 효과가 없는지 도와주십시오. 페이지보기도 내 그리드보기에서 사용할 수 있습니다.페이징 사용 가능 격자보기에서 쿼리 문자열이 작동하지 않습니다.

<asp:GridView ID="ResultGridView" runat="server" AutoGenerateColumns="False" ShowFooter="true" 
    DataKeyNames="RegionProjectID" 
    AllowPaging="True" 
    CellPadding="3" 
    OnPageIndexChanging="ResultGridView_PageIndexChanging" 
    OnRowDeleting="ResultGridView_RowDeleting" 
    CssClass="mGrid" 
    OnRowEditing="ResultGridView_RowEditing" 
    OnRowUpdating="ResultGridView_RowUpdating" 
    OnRowCancelingEdit="ResultGridView_RowCancelingEdit" 
    PageSize="15" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellSpacing="2" 
    OnRowCommand="ResultGridView_RowCommand" > 
     <Columns> 
      <asp:BoundField DataField="RegionProjectID" HeaderText="Region ID" InsertVisible="False" 
       ReadOnly="True" SortExpression="RegionProjectID" Visible="false" /> 
      <asp:TemplateField HeaderText="Region Name" SortExpression="RegionProjectName"> 
       <EditItemTemplate> 
        <asp:TextBox ID="txtRegion" Width="250px" runat="server" Text='<%# Bind("RegionProjectName") %>'></asp:TextBox> 
       </EditItemTemplate> 
       <FooterTemplate> 
       <asp:TextBox ID="txtRegion1" runat="server" Width="250px"></asp:TextBox> 
       </FooterTemplate> 
       <ItemTemplate> 
        <asp:LinkButton ID="LinkButton3" CommandName="Details" CommandArgument='<%# Eval("RegionProjectID") %>' Text='<%# Bind("RegionProjectName") %>' runat="server" /> 
       </ItemTemplate> 
      </asp:TemplateField> 

      <asp:TemplateField HeaderText="Edit" ShowHeader="False"> 
      <EditItemTemplate> 
       <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update" Text="Update"></asp:LinkButton> 
       <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel"></asp:LinkButton> 
      </EditItemTemplate> 
      <FooterTemplate> 
       <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="AddNew" Text="Add New"></asp:LinkButton> 
      </FooterTemplate> 
      <ItemTemplate> 
       <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit"></asp:LinkButton> 
      </ItemTemplate> 
      </asp:TemplateField> 
      <asp:CommandField HeaderText="Delete" ShowDeleteButton="True" ShowHeader="True" /> 
      <%-- <asp:CommandField HeaderText="Select" ShowSelectButton="True" ShowHeader="True"/> --%> 

     </Columns> 
     <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" /> 
     <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" /> 
     <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" /> 
     <%--<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />--%> 
     <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" /> 
    </asp:GridView>` 


protected void ResultGridView_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
     if (e.CommandName == "Details") 
     { 
      Server.Transfer("Default3.aspx?ID=" + e.CommandArgument.ToString()); 

     } 

     if (e.CommandName.Equals("AddNew")) 
     { 

      TextBox txtRegion1 = (TextBox)ResultGridView.FooterRow.FindControl("txtRegion1"); 
      TextBox txtNatureOFWork1 = (TextBox)ResultGridView.FooterRow.FindControl("txtNatureOFWork1"); 
      if (txtRegion1.Text != "") 
      { 
       cmd.Connection = conn; 
       cmd.CommandText = "INSERT INTO RegionAndProjectInfo(RegionProjectName, NatureOFWorkID) Values('" + txtRegion1.Text + "', '" + ddlnatureOfWork.SelectedValue.ToString() + "')"; 
       conn.Open(); 
       cmd.ExecuteNonQuery(); 
      } 
      FillVendorGrid(); 
      conn.Close(); 
     } 
    } 
+0

*하지만 실제로 작동하지 않습니다 * 실제로 도움이되지 않습니다, 당신이 얻으려는 노력이나 실수로 어떤 노력을 기울일 필요가 있습니다. – V4Vendetta

+0

이제 나는 이것을 시도 : -

파일 전송의 그것의 더.

0

대신 서버의 전송의

Response.Redirect("Default3.aspx?ID=" + e.CommandArgument.ToString());

를 사용해야 원인 서버 전송 Response.Redirect를 비교하여 다른 일을한다.

Server.Transfer 메서드에는 두 번째 매개 변수 인 "preserveForm"도 있습니다. 당신이 문 같은

`Server.Transfer("Default3.aspx?ID=" + e.CommandArgument.ToString()`, True); 

를 사용하여 true로 설정하면, 기존의 쿼리 문자열 및 모든 형태의 변수는 여전히에 전송하는 페이지에 사용할 수 있습니다. 대신 내가 위에서 지금은 쿼리 문자열을 받고 같은 Regionprojectname의 ItemTemplate을 업데이트했다 리디렉션

http://msdn.microsoft.com/en-us/library/ms525800%28v=vs.90%29.aspx

+0

그리드에서 페이징을 사용하여 디버깅 할 때 e.CommandArgument.ToString(); 가치를 부여합니다. 어떤 지역 ID도 쿼리 문자열에 들어오지 않습니다. –

관련 문제