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();
}
}
*하지만 실제로 작동하지 않습니다 * 실제로 도움이되지 않습니다, 당신이 얻으려는 노력이나 실수로 어떤 노력을 기울일 필요가 있습니다. – V4Vendetta
이제 나는 이것을 시도 : -
의
파일 전송의 그것의 더.
출처
2012-07-31 10:03:03
대신 서버의 전송의
Response.Redirect("Default3.aspx?ID=" + e.CommandArgument.ToString());
를 사용해야 원인 서버 전송 Response.Redirect를 비교하여 다른 일을한다.
Server.Transfer 메서드에는 두 번째 매개 변수 인 "preserveForm"도 있습니다. 당신이 문 같은
를 사용하여 true로 설정하면, 기존의 쿼리 문자열 및 모든 형태의 변수는 여전히에 전송하는 페이지에 사용할 수 있습니다. 대신 내가 위에서 지금은 쿼리 문자열을 받고 같은 Regionprojectname의 ItemTemplate을 업데이트했다 리디렉션
http://msdn.microsoft.com/en-us/library/ms525800%28v=vs.90%29.aspx
출처
2012-07-31 05:58:35 JohnnBlade
그리드에서 페이징을 사용하여 디버깅 할 때 e.CommandArgument.ToString(); 가치를 부여합니다. 어떤 지역 ID도 쿼리 문자열에 들어오지 않습니다. –