Как получить значение ячейки WebDataGrid в событии DropDownList_SelectedIndexChanged? - PullRequest
0 голосов
/ 02 декабря 2011

У меня есть GRIDVIEW на странице ASP.NET, и я преобразую его в сетку веб-данных Infragistics.

Теперь моя сетка имеет функции открытия файла, копирования файла, редактирования описания файла, отправки файла электронной почты и удаления файла.

Он основан на документах.

Теперь предположим, что если я возьму пример удаления файла, исходный код будет:

  protected void lbEmailDocument_Click(object sender, CommandEventArgs e)

    {

        int index = Int32.Parse(e.CommandArgument.ToString());

        Session["strDocumentToAttach"] = ((Label)gvDocuments.Rows[index].Cells[0].FindControl("lblPath")).Text;

        Session["strSubject"] = "Case Document E-mail (Case # " + lblCaseNumber.Text.Trim() + ")";

        Session["strNote"] = "Please find the attached document " + ((Label)gvDocuments.Rows[index].Cells[0].FindControl("lblFileName")).Text;

        ScriptManager.RegisterStartupScript(Page, this.GetType(), "myPopUp", "<script language='Javascript'>mywin=window.open('Case_Email.aspx?CaseID=" + lblCaseID.Text + "', '', 'location=0,status=0,resizable=1,scrollbars=1,height=920px, width=1250px');mywin.moveTo(0,0);</script>", false);



        // Response.Redirect("Case_Email.aspx?CaseID=" + lblCaseID.Text);

    }

Теперь, когда я изменяю это: вместо Rows[index].Cells[0] Я не могу получить доступ к значению ячейки.

Пожалуйста, объясните мне, как его изменить.

При реализации предоставленного вами кода я получил следующую ошибку:

enter image description here

1 Ответ

1 голос
/ 02 декабря 2011

Я считаю, что вы хотите использовать Items вместо Cells.

Этот код предполагает, что каждая ячейка является шаблонной.

  protected void lbEmailDocument_Click(object sender, CommandEventArgs e)

    {

        int index = Int32.Parse(e.CommandArgument.ToString());

        Session["strDocumentToAttach"] = ((Label)gvDocuments.Rows[index].Items[0].FindControl("lblPath")).Text;

        Session["strSubject"] = "Case Document E-mail (Case # " + lblCaseNumber.Text.Trim() + ")";

        Session["strNote"] = "Please find the attached document " + ((Label)gvDocuments.Rows[index].Items[0].FindControl("lblFileName")).Text;

        ScriptManager.RegisterStartupScript(Page, this.GetType(), "myPopUp", "<script language='Javascript'>mywin=window.open('Case_Email.aspx?CaseID=" + lblCaseID.Text + "', '', 'location=0,status=0,resizable=1,scrollbars=1,height=920px, width=1250px');mywin.moveTo(0,0);</script>", false);



        // Response.Redirect("Case_Email.aspx?CaseID=" + lblCaseID.Text);

    }

Однако, если искомые значения указаны в столбцах, вам необходимо использовать код, подобный следующему:

  protected void lbEmailDocument_Click(object sender, CommandEventArgs e)

    {

        int index = Int32.Parse(e.CommandArgument.ToString());

        Session["strDocumentToAttach"] = gvDocuments.Rows[index].Items.FindItemByKey("lblPath").Value;

        Session["strSubject"] = "Case Document E-mail (Case # " + lblCaseNumber.Text.Trim() + ")";

        Session["strNote"] = "Please find the attached document " + gvDocuments.Rows[index].Items.FindItemByKey("lblFileName").Value;

        ScriptManager.RegisterStartupScript(Page, this.GetType(), "myPopUp", "<script language='Javascript'>mywin=window.open('Case_Email.aspx?CaseID=" + lblCaseID.Text + "', '', 'location=0,status=0,resizable=1,scrollbars=1,height=920px, width=1250px');mywin.moveTo(0,0);</script>", false);



        // Response.Redirect("Case_Email.aspx?CaseID=" + lblCaseID.Text);

    }
...