У меня есть gridview DevExpress, и я связываю datasource
с кодом позади (C#). Мое действие работает правильно, но когда я использую rowfilter
, это не так.Ошибка с действием строки в DevExpress Gridview
Я думаю, что мой аргумент команды, который отправляет информацию на мой datasource
, неверен.
Мой идентификатор в строке 1 равен 1, а мой идентификатор в строке 13 должен быть 13, но после строки rowfilter
и нажмите кнопку (строка команды) в строке 13, мой идентификатор, который отправляет код позади (аргумент команды), равен 1 !
Как получить идентификатор из строки (GridView Devexpress)?
Мой GridView:
<dx:ASPxGridView ID="gv" runat="server" AutoGenerateColumns="False" OnRowCommand="gv_RowCommand" OnDataBinding="gv_DataBinding"
ClientInstanceName="gv" KeyFieldName="Id"
Width="100%">
<Columns>
<dx:GridViewDataTextColumn Caption="" CellStyle-HorizontalAlign="Center" VisibleIndex="0" Width="12%">
<DataItemTemplate>
<asp:LinkButton ID="btnconfirm" Text="Print" Width="70px" CssClass="btn btn-primary btn-small" ForeColor="#cc0000" CommandArgument='<%# Eval("Id") %>'
CommandName="print" runat="server"
OnClientClick="return confirm('Print?');">
</asp:LinkButton>
</DataItemTemplate>
<HeaderStyle HorizontalAlign="center" />
</dx:GridViewDataTextColumn>
</Columns>
<SettingsPager PageSize="80">
</SettingsPager>
<Settings ShowFilterRow="true" />
</dx:ASPxGridView>
Мой связывании код:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
refreshGrid();
gv.DataBind();
}
}
protected void gv_DataBinding(object sender, EventArgs e)
{
refreshGrid();
}
protected void gv_RowCommand(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewRowCommandEventArgs e)
{
if (e.CommandArgs.CommandName == "print")
{
String _ID = e.CommandArgs.CommandArgument.ToString();
}
}
private void refreshGrid()
{
DataClasses1DataContext m = new DataClasses1DataContext();
var q = from p in m.TblUserElectronics.AsQueryable()
from w in m.ViewPersonCarRelations
where p.CID == w.CarId
select new
{
p.Id,
p.Enabled,
CodeTaxi = w.Code_Taxi
};
gv.DataSource = q;
}
Не могли бы вы выслать какой-нибудь код? Например, обработчик или «код C# C#», возможно, вы не получите '' rowid'', а другое целочисленное значение. –
@FlorianNeiss Весь мой код верен, я уверен. Проблема заключается в использовании rowfilter. Когда я использую его, Gridview повторяется и что-то не так! – mosyflasher
@FlorianNeiss Сообщение отредактировано – mosyflasher