Однажды я попросил способ, чтобы кнопка ссылки пропустила более одного значения в commandArgument, а затем я подошел к подходу, где я передаю строку из нескольких значений, разделенных любым символом, и делю ее на оригинальные части ... не получилось я не знаю что не так с расщеплением!
Теперь я попробовал единственное решение, которое я получил, это создание пользовательского элемента управления LinkButton и добавление свойств для принятия любых значений, которые необходимы! ... Не могли бы вы сказать мне, что не так с моими 2 подходами и что лучше?
Первый вопрос можно найти здесь: текст ссылки
и это код для подхода управления пользователем >>
MultivaluedLinkButton.ascx:
<asp:LinkButton ID="LnkBtnSort" runat="server" Text="Sort" OnClick="LnkBtnSort_Clicked"/>
MultivaluedLinkButton.ascx.cs:
public partial class MultivaluedLinkButton : System.Web.UI.UserControl
{
public event EventHandler Click;
private int _sortingType;
private string _sortingFactor;
private string _text;
public int SortingType
{
set { _sortingType = value; }
get { return _sortingType; }
}
public string SortingFactor
{
set { _sortingFactor = value; }
get { return _sortingFactor.ToString(); }
}
//public string Text
//{
// set { _text = value; }
// get { return _text.ToString(); }
//}
protected void LnkBtnSort_Clicked(object sender, EventArgs e)
{
if( Click != null )
{
this.Click(this, EventArgs.Empty);
}
}
}
Наконец, вот реализация моего элемента управления на странице aspx:
protected void MultivaluedLinkButton1_Clicked(object sender, EventArgs e)
{
MultivaluedLinkButton ctrl = (MultivaluedLinkButton)sender;
using (SqlConnection cn1 = new SqlConnection(ConfigurationManager.ConnectionStrings["testConnectionString"].ConnectionString))
{
using (SqlCommand cm1 = new SqlCommand(commandString2, cn1))
{
cm1.Parameters.Add("@arrange_by_id", System.Data.SqlDbType.Int);
cm1.Parameters["@arrange_by_id"].Value = ctrl.SortingType;
cn1.Open();
using (SqlDataReader dr1 = cm1.ExecuteReader())
{
SortBy_rpt.DataSource = dr1;
SortBy_rpt.DataBind();
}
}
}
}
Шаблон элемента повторителя на странице реализации:
<ItemTemplate>
<uc1:MultivaluedLinkButton ID="MultivaluedLinkButton1" runat="server" OnClick="MultivaluedLinkButton1_Clicked" SortingType='<%#Eval("arrange_by_id")%>' />
</ItemTemplate>