Доступ к кнопке метода на главной странице и использование события onclick для дочернего элемента - PullRequest
0 голосов
/ 23 ноября 2011

Проблема 1

Я пытаюсь использовать событие Onclick с помощью кнопки поиска, расположенной на главной странице, на дочерней странице.Я нашел хорошее решение на этом сайте, но оно не работает.

Ссылка на него: Как обрабатывать событие кнопки главной страницы на странице содержимого?

Разница с этим решением заключается в том, что мой IpageInterface находится в папке App_Code ив пространстве имен Business.

Кроме того, это почти то же самое.

Итак, у меня есть класс IpageInterface:

namespace Business {
    public interface IpageInterface {
        void DoSomeAction();
    }
}

Затем на главной странице у меня есть:

using Business;

public partial class site : System.Web.UI.MasterPage {
    protected void SearchQuery_Click(object sender, EventArgs e) {
        IpageInterface pageInterface = Page as IpageInterface;
        if (pageInterface != null) {
            pageInterface.DoSomeAction();
        }
    }            
}

И, наконец, у меня на странице, которую я хочу использовать (страница результатов, потому что кнопка является кнопкой поиска):

using Business;

public partial class results : System.Web.UI.Page, IpageInterface {
public void DoSomeAction() {
    ContentPlaceHolder mainContent = (ContentPlaceHolder)Master.FindControl("mainContent");

    if (mainContent != null) {
        DropDownList ddlSearchOn = (DropDownList)mainContent.FindControl("ddlSearchOn");
        TextBox TxtSearch = (TextBox)mainContent.FindControl("TxtSearch");

        if (ddlSearchOn.Text == "Everything" || ddlSearchOn.Text == "Title" || ddlSearchOn.Text == "Text") {
            List<News> newsSearchResults = News.SearchNews(ddlSearchOn.Text, TxtSearch.Text);

            foreach(News newsArticle in newsSearchResults) {
                newsArticle.Text = LimitCharacters(newsArticle.Text, 350);
            }

            repeaterSearchResults.DataSource = newsSearchResults;
            repeaterSearchResults.DataBind();
        }
    }
}

Но когда я нажимаю кнопкуи я смотрю на значение pageInterface, которое говорит, что оно пустое.

Проблема 2

РЕДАКТИРОВАТЬ: Проблема 2 решена.Я выбрал «Каскад» рядом с правилом удаления в окне отношений внешних ключей.

Помимо этой проблемы у меня есть вторая проблема с MS SQL, которая выглядит следующим образом: у меня есть новостные статьи с комментариями, когда я хочу удалитьв статье я также должен удалить комментарии, поэтому я использую следующий запрос:

SqlCommand cmd = new SqlCommand(@"DELETE FROM News_comments WHERE News_comments.news_Id = @news_Id AND News_comments.account_Id = @account_Id;
                                              DELETE FROM News_news WHERE News_news.news_Id = @news_Id"
                                              , conn);

Проблема, однако, заключается в том, что все еще кажется, что в статье все еще есть комментарии, даже если комментарии удалены,Поэтому я не могу удалить статью.Исключение составляет:

"The DELETE statement conflicted with the REFERENCE constraint" exception.

Буду признателен за необходимую помощь!

1 Ответ

0 голосов
/ 23 ноября 2011

Это не совсем решение проблемы, с которой я столкнулся в приведенном выше коде, но это решение моей ситуации.

Я просто передаю необходимую информацию дочерней странице через URL.Это не личные или ограниченные данные, поэтому это не проблема.

...