这是引发错误的行:
<asp:CheckBox ClientID='<%# Eval("ProviderName") + "@" + Convert.ToString(Container.DataItemIndex) %>' runat="server"
这是我的数据源:
var patientProviders = (from t in adminDb.tbl_patients_patients_to_providers
join p in adminDb.tbl_patients_providers on t.ProviderId equals p.ProviderId_this
join ps in adminDb.tbl_patients_providers_to_specialties on p.ProviderId_this equals ps.ProviderId
join s in adminDb.tbl_patients_providers_specialties on ps.SpecialtyId equals s.ProviderSpecialtiesId_this
where t.PatientId == patientId
orderby t.PatientToProviderId_this
select new { p.ProviderName, s.ProviderSpecialty, t.ProviderTypeId }).ToList();
提供程序名称是一个字符串。
我只是无法弄清楚为什么输入格式不正确......
Control.ClientId 只有一个"get",所以我认为它是只读的:
- from MSDN -
[BrowsableAttribute(false)]
public virtual string ClientID { get; }
首先,ClientID 是一个 reaonly 属性。你只有一个吸气剂。
但是,如果要绑定的表达式有问题GridView.RowUpdating
请使用事件处理程序,该处理程序允许您在代码隐藏中操作要绑定的表达式。(帮助调试您的问题)