Обновление параметра asp: SqlDataSource через asp: LinkButton - PullRequest
0 голосов
/ 11 апреля 2010

Я постараюсь объяснить, что я делаю, как могу, но я довольно новичок в asp.net, поэтому будьте терпеливы со мной.

У меня есть SqlDataSource, который возвращает простой оператор выбора, основанный на предложении WHERE, используя @COURSE_ID

То, что я хочу сделать, - это каждый раз, когда любой из 2 (это будет меняться по мере того, как он будет сгенерирован), нажимается asp: LinkButtons, они изменяют значение @COURSEID, которое я хотел бы связать с конкретным кнопка.

Кнопки:

<asp:LinkButton ID="LinkButton2" runat="server" onclick="MenuUpdate_Click">Course1</asp:LinkButton>
 <asp:LinkButton ID="LinkButton1" runat="server" onclick="MenuUpdate_Click">Course2</asp:LinkButton>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:connString %>" SelectCommand="SELECT Chapter.chapterName, Chapter.chapterID

ОТ главы ГДЕ Chapter.courseID = @COURSE_ID «>

C # защищенный void MenuUpdate_Click (отправитель объекта, EventArgs e) {

    Parameter p = SqlDataSource1.SelectParameters["COURSE_ID"];
    SqlDataSource1.SelectParameters.Remove(p);
    SqlDataSource1.SelectParameters.Add("COURSE_ID", THIS NEEDS TO BE VALUE ASSOCIATED TO BUTTON);
    ListView1.DataBind();
    UpdatePanel1.Update();

}

Если у кого-нибудь есть предложения, которые были бы хорошими, я пробовал много разных вещей всю ночь безуспешно: (

Спасибо

1 Ответ

0 голосов
/ 11 апреля 2010

Попробуйте установить идентификаторы кнопки ссылки, содержащие название курса (я не думаю, что идентификаторы могут начинаться с цифр, поэтому дайте им идентификаторы "crs", а затем название курса). В событии click для кнопок извлеките идентификатор отправителя и возьмите всю строку после «crs». Это название курса по нажатой кнопке ссылки.

Также, если «COURSE_ID» является единственным параметром SelectCommand, я лично сначала очистил бы все параметры. Это просто гарантирует, что у вас нет никаких параметров из других источников. Это просто так, как я работаю - очистить все и заново ввести все, что не должно было быть очищено, а затем ввести что-нибудь еще.

С уважением,

Rich

...