从母版页访问方法按钮并在子项上使用onclick事件

时间:2011-11-22 22:29:11

标签: sql asp.net sql-server controls sql-delete

问题1

我正在尝试使用位于母版页上的搜索按钮中的Onclick事件。我在这个网站上找到了一个很好的解决方案,但它不起作用。

链接到它: How to handle master page button event in content page?

与该解决方案的不同之处在于,我的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 :(得分:0)

这不是解决上述代码问题的真正解决方案,但它可以解决我的问题。

我只是通过网址将所需信息提供给子页面。这不是个人或受限制的数据,所以这不是问题。