2013-10-28 2 views
0

그리드보기에서 사용자가 활성화를 클릭하면 activate.aspx 페이지로 이동합니다. 그리고 이전 페이지에서 activate.aspx 페이지로 3 개의 값을 가져 오려고합니다. 내 코드는 다음과 같습니다입력 문자열이 gridview 값을 검색하기위한 올바른 형식이 아닙니다.

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (this.Page.PreviousPage != null) 
     { 
     int rowIndex = int.Parse(Request.QueryString["RowIndex"]); 
     GridView GridView1 = (GridView)this.Page.PreviousPage.FindControl("GridView1"); 
     GridViewRow row = GridView1.Rows[rowIndex]; 
     Label1.Text = row.Cells[3].Text; 
     Label2.Text = row.Cells[2].Text; 
     Label3.Text = row.Cells[2].Text; 

     SqlDataAdapter da = new SqlDataAdapter("insert into login values('" + Label1.Text + "','" + Label2.Text + "','" + Label3.Text + "')",con); 
     DataSet ds = new DataSet(); 
     da.Fill(ds); 
    } 
    } 

    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "Redirect") 
    { 
     String email = "lblemail.Text"; 
     String mob = "lblmobno.Text"; 
     Server.Transfer("activate.aspx?RowIndex=" + email +mob, true); 

    } 
} 

영문 마크 업

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" 
     onrowcommand="GridView1_RowCommand"> 
     <Columns> 
      <asp:TemplateField HeaderStyle-Font-Bold="true" HeaderStyle-Font-Size="Larger" HeaderText="Activate/Delete" 
       ItemStyle-Width="150px"> 
       <ItemTemplate> 
        <asp:LinkButton ID="linkbutton1" runat="server" Text="Activate" CommandName="Redirect" 
         CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>'></asp:LinkButton> 
        <span onclick="return confirm('Are You sure want to Delete?')"> 
         <asp:LinkButton ID="linkbutton2" runat="server" Text="Delete" CommandName="Delete"></asp:LinkButton> 
        </span> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

내가 입력 문자열이 다음 행에 대한 올바른 형식이 아니라고 오류를 받고 있어요 :

int rowIndex = int.Parse(Request.QueryString["RowIndex"]); 

pls는 저를 도움이됩니다.

+1

: 왜 당신은 이메일과 폭도를 전달하는 ... 당신은 또한 숨겨진 필드를 사용하고 GridView1_RowCommand 나는이 당신에게 안부 도움이되기를 바랍니다

에서 찾을 수 있습니다

를 사용하는 rowindex? 이메일과 폭도 외에 activate.aspx에 전달할 세 가지 값은 무엇입니까? 012.All rowIndex = int.Parse (Request.QueryString [ "RowIndex"]);' – tariq

+0

'Request.QueryString [ "RowIndex"]' ? – Grundy

+0

'Request.QueryString [ "RowIndex"]'의 값은 무엇입니까? – Rohit

답변

0

RowIndex에 텍스트/문자열을 보내고 RowIndex로, 즉 행 컬렉션에 액세스하기위한 색인이 정수 여야하기 때문입니다. rowindex에 전달하는 것은 'lblemail.Textlblmobno.Text'이며,이를 int로 구문 분석하면 명백한 오류가 발생합니다.

업데이트 : Ok. rowIndex를 전달할 필요가 없습니다.

첫 번째 변화 : -

String email=lblEmail.Text; 

String mob=lblMob.Text; 

두 번째 변화 : -

은 더 meaningfull 이름 (내가 이메일로 이름이 변경 rowIndex에 아래의 코드에서 수행 한) 쿼리 문자열 매개 변수

세 번째 변화를 이름 바꾸기 : -

protected void Page_Load(object sender, EventArgs e) 
{ 
    String email= Request.QueryString["email"]; 
    String mobNumber= Request.QueryString["mob"]; 
    String yourThirdParameter = Request.QueryString["thirdOne"]; // Provide your third parameter. 

    SqlDataAdapter da = new SqlDataAdapter("insert into login values('" + email + "','" + mob + "','" + yourThirdParameter + "')",con); 
// Assuming this is the sequence.you can change it your way. 

    DataSet ds = new DataSet(); 
    da.Fill(ds); 

} 


protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "Redirect") 
    { 
     String email = lblemail.Text; 
     String mob = lblmobno.Text; 
     String thirdOne= // Fill it as is the need 
     Server.Transfer("activate.aspx?email=" + email+"&mob=" +mob+"&thirdOne="+thirdOne, true); 

    } 
} 

경고 : 암호뿐만 아니라 QueryString을 사용해서는 안됩니다. 또한 이메일을 전달할 때 QueryString에서 모바일 번호를 입력하는 것은 좋지 않습니다. 여기

+0

응답에 단어가 올바르게 표시되지 않습니다. "RowIndex는 int이어야합니다."이 의미는 무엇입니까? –

+0

예를 들어 대답을 자세히 설명해 주실 수 있습니까? – DK007

+0

어떻게이 오류를 해결할 수 있습니까? u pls가 예를 들어 설명해 줄 수 있습니까? Pls 도와주세요 – DK007

0
if (e.CommandName == "Redirect") 
    { 
     String email = "lblemail.Text"; 
     String mob = "lblmobno.Text"; 
     Server.Transfer("activate.aspx?RowIndex=" + email +mob, true); 

    } 

쿼리 문자열이

activate.aspx? rowIndex에 = lblemail.Textlblmobno.Text

같은 모습이 될 것입니다, 그래서 당신이 쿼리 문자열 값으로 이메일 및 모바일 값을 전송하는 것을 볼 수있다

하고 rowIndex에 가치를 얻을 때 당신은 이제 당신이해야 할 무엇을 볼 수 값 디버그로 lblemail.Textlblmobno.Text를 반환하고 그것을 볼 것이다는 int 값을 전달하는 것입니다 있는 gridview에서 당신은

관련 문제