2012-07-31 44 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 2012-07-31 05:58:30

+0

現在我試過了: - 'text ='<%#Bind(「RegionProjectName」)%>'runat =「server」/> 這次我無法看到查詢字符串但沒有正確格式化,而不是在URl的RegionID我越來越像這樣: - 「http:// localhost:58683/Default3.aspx?ID = <%#Eval(」RegionProjectID「)%>」 – 2012-07-31 07:45:38

回答

0
<ItemTemplate> 
        <asp:hyperlink id="LinkButton3" navigateurl='<%# "Default3.aspx?ID=" + Eval("RegionProjectID")%>' text='<%# Bind("RegionProjectName")%>' runat="server" /> 
       </ItemTemplate> 

我已經更新Regionprojectname的ItemTemplate中如上現在得到的查詢字符串。

0

您必須使用

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

,而不是服務器中轉,造成服務器中轉確實比較Response.Redirect的不同的事情。

Server.Transfer方法也有第二個參數 - 「preserveForm」。如果設置爲True,使用的語句,如

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

,現有的查詢字符串和任何形式的變量仍然將提供給正在傳送的頁面。

它更多的是文件傳輸,而不是重定向

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

+0

我已經使用過此之前,問題是我曾在網格中使用Paging,所以當我調試時,我發現e.CommandArgument.ToString();給「」value.No RegionID進入查詢字符串。 – 2012-07-31 07:52:51

相關問題