Использование QueryStringParameter и ControlParameter в шаблоне элемента GridView в ASP.NET - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть приложение ASP.NET.Это приложение имеет GridView.Этот GridView имеет TemplateField, который должен включать гиперссылки.Я хочу, чтобы эти гиперссылки перешли к гиперссылке в виде

add.aspx?id1=[QueryStringParameterValue]&id2=[ControlParameterValue]&id3=[CurrentRecordID]

Есть ли способ сделать это?Если нет, то как лучше перенаправить пользователя на другую страницу и принять во внимание:

  • Значение из текущей строки запроса (QueryStringParameterValue)
  • Значениевыделенный элемент в раскрывающемся списке (ControlParameterValue)
  • Идентификатор текущей записи

В настоящее время мой GridView выглядит следующим образом:

<asp:DropDownList ID="myDropDownList" Runat="Server" DataSourceID="myDataSource" DataTextField="Name" DataValueField="ID" />
<GridView ID="myGridView" runat="Server">
  <Columns>
    <asp:BoundField DataField="ID" HeaderText="ID" />
    <asp:BoundField DataField="Name" HeaderText="Name" />
    <asp:TemplateField HeaderText="Action">
      <ItemTemplate>
        <a href="#">View Details</a>
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>

Но теперь яЯ застрял.Как мне соединить три элемента, которые я хочу включить в мой ItemTemplate?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 21 декабря 2011

ASPX

<a href='<%# CreateUrl(Eval("id")) %>'>View details </a>

C #

public string CreateUrl(obj value)
{
       var p = request.querystring["querystringname"];
       if(p!=null)
       {
         return "add.aspx?id1=" + p + "&id2=" + mydropdownlist.selectedvalue + "&id3=" + id;
       }
        return "";
}
0 голосов
/ 21 декабря 2011

Я бы отделил данные запроса от данных ответа. таким образом, если что-то изменится (замените выпадающий список или строку запроса на сообщение формы и т. д.), вид сетки не изменится.

код позади

protected string Value1{get {return Request.QueryString["key"];}}
protected string Value2 {get {return DropDown.SelectedValue;}}

Разметка

<GridView ID="myGridView" runat="Server">
  <Columns>
    ...
    <asp:TemplateField HeaderText="Action">
      <ItemTemplate>
        <a href='<%=string.Format("add.aspx?id1={0}&id2={1}&id3={2}", Value1, Value2, Eval("ID"))%>'>View Details</a>
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...