我正在尝试实现一个带有登录页面的应用程序,然后当用户登录时,会有一个导航栏、工具栏和 sidenav 带有router-outlet.
基本上,在app.component.html我有一个定义:
<div *ngIf="isAuthenticated">
<app-custom-navbar></app-custom-navbar>
<app-custom-toolbar></app-custom-toolbar>
<app-custom-sidenav></app-custom-sidenav>
</div>
<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)
我有这个路由:
const routes: Routes = [
{ path: '', canActivate: [AuthenticationGuard], component: HomeComponent },
{ path: 'login', component: LoginComponent },
{ path: 'data', canActivate: [AuthenticationGuard], component: DataComponent },
{ path: 'projects', canActivate: [AuthenticationGuard], component: ProjectsComponent },
];
Run Code Online (Sandbox Code Playgroud)
因此,这很有效,如果用户未通过身份验证,他将被重定向到/login.
问题是,当他通过身份验证时,sidenav 组件占据了整个空间,然后其他组件就看不到了。
基本上这是问题:
<mat-sidenav-container class="sidenav-container">
<mat-sidenav>
<!-- sidenav template... -->
</mat-sidenav>
<mat-sidenav-content>
<!-- how can I put my content here and use routing at the …Run Code Online (Sandbox Code Playgroud) angular-routing angular-material angular-material2 angular angular-router
过去几天我一直在研究这个问题,我似乎无法弄明白.
我有一个c# WinForms应用程序使用它ReportDocument来加载报表并将其放入Crystal Report Viewer,以便用户可以预览它.目的是预览不同的统计信息,表单永远不会关闭.有一个计时器可以运行并向查看器加载不同的报告.
当发生这种情况时,内存使用和句柄(我可以在任务管理器中看到它们)不断增加.当应用程序启动时,它使用大约30 MB,当它运行10分钟时,它使用大约200 MB并且它不断增加.
我在互联网上阅读了很多关于这个问题的内容,我发现ReportDocument需要关闭和处理查看器.不幸的是,这并没有解决它.报告中的连接类型OLE DB(ADO)是从SQL Server数据库中检索数据.
简单地说,Form1有一个计时器,当它过去时它会处理Crystal Reports Viewer并调用垃圾收集器.然后加载新报告.
这是我的示例代码
Form1中:
private ReportDocument rpt;
private void timer2_Tick(object sender, EventArgs e)
{
timer2.Enabled = false;
try
{
panel1.Hide();
if (rpt != null)
{
foreach (Table t in rpd.Database.Tables)
t.Dispose();
rpt.Close();
rpt.Dispose();
rpt = null;
GC.Collect();
}
panel1.Controls.Remove(CRVviewer);
if (CRVviewer != null)
{
CRVviewer.Dispose();
GC.Collect();
}
// The problem starts from here:
var report = …Run Code Online (Sandbox Code Playgroud) 我有一个asp.net Web应用程序.在我的.aspx页面中,我有一个更新面板,其中我有3个asp:LinkButton应该调用ac#code后面.问题是onclick不起作用.
以下是代码的外观:
<div id="div1">
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<ul>
<li><asp:LinkButton ID="lnk_1" runat="server" OnClick="lnk1_Click">Link1</asp:LinkButton></li>
<li><asp:LinkButton ID="lnk_2" runat="server" OnClick="lnk2_Click">Link2</asp:LinkButton></li>
<li><asp:LinkButton ID="lnk_3" runat="server" OnClick="lnk3_Click">Link3</asp:LinkButton></li>
</ul>
<div> some more code here </div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="lnk_1" />
<asp:PostBackTrigger ControlID="lnk_2" />
<asp:PostBackTrigger ControlID="lnk_3" />
</Triggers>
</asp:UpdatePanel>
</div>
Run Code Online (Sandbox Code Playgroud)
代码有什么问题?我也试过使用AsyncPostBackTrigger但仍然无法正常工作.
根本没有调用后面的代码.
我也曾尝试在Google上搜索但无法找到解决方案.
我正在尝试创建一个select语句,从MySQL数据库中选择图像名称.该表名为 - pictures_archive.我也试图根据他们的类别选择这些图片.代码是:
SELECT pictures_archive_filename FROM pictures_archive
WHERE pictures_archive_id = (SELECT pictures_archive_id
FROM pictures_archive_category WHERE pictures_category_id = 9)
Run Code Online (Sandbox Code Playgroud)
它给了我一个"#1242 - Subquery返回超过1行"的错误.我可以看到原因,但无法弄明白该怎么做.
我知道我可以在清单中设置活动的方向,但是当此活动调用MediaStore.ACTION_IMAGE_CAPTURE打开相机并拍照时,用户仍然可以以横向模式拍照。我可以将相机应用程序本身的方向锁定为纵向吗?
这是示例代码:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
startActivityForResult(intent, TAKE_PICTURE);
Run Code Online (Sandbox Code Playgroud)
我想阻止用户拍摄任何风景照片。
任何帮助将不胜感激。
编辑:发现该主题的另一个问题尚未得到解答: How to lock the Camera app Direction Called through Intent in android?
我想把一个string分成一个List<string>.我有这个字符串:
string myData = "one, two, three; four, five, six; seven, eight, nine";
Run Code Online (Sandbox Code Playgroud)
我希望填充的字符串列表看起来像:
one two three
four five six
seven eight nine
Run Code Online (Sandbox Code Playgroud)
这意味着我必须删除逗号(,)和半冒号(;),以便例如列表的第一行,第二列将是两个(没有逗号,半冒号或空格).
我知道我可以使用.Split:
string[] splittedArray = myData.Split(';').ToArray();
Run Code Online (Sandbox Code Playgroud)
这应该产生如下结果:
one, two, three,
four, five, six,
seven, eight, nine
Run Code Online (Sandbox Code Playgroud)
如何删除逗号(,)并将其以该格式放入列表中?
我正在使用 EmbeddedNavigator 的添加、编辑和删除按钮。我已订阅该gridControl1_EmbeddedNavigator_ButtonClick活动,并在那里检查单击了哪个按钮。
问题是,当我编辑单元格并按保存更改(EndEdit)时,我看不到新值。这是我的代码:
private void gridControl1_EmbeddedNavigator_ButtonClick(object sender, DevExpress.XtraEditors.NavigatorButtonClickEventArgs e)
{
if (e.Button.ButtonType == DevExpress.XtraEditors.NavigatorButtonType.EndEdit)
{
if (MessageBox.Show("Do you want to save the changes?", "Save changes?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
{
var rowHandle = gridView1.FocusedRowHandle;
// Here if the port is null by default, when I change it to 25
// I still get an empty string
var port = Convert.ToString(gridView1.GetRowCellValue(rowHandle, "ftpPort"));
var ftpConfig = new FtpConfiguration() { ftpPort = port };
// Update and save …Run Code Online (Sandbox Code Playgroud) 我知道这被问了很多次,我在网上搜索了大部分解决方案,但似乎没有任何东西可以帮我.我有一个这种结构的表:
ID | ScheduleId | Filename | Description
1 | 10 | | ....
2 | 10 | test.txt | .....
Run Code Online (Sandbox Code Playgroud)
我希望Filename通过传递ScheduleId 来获取最后一个非空(例如,在这种情况下获取"test.txt").
我尝试了很多东西,似乎没有任何东西让我得到文件名.这是最后一个:
var tempFileName = objContext.SchedulesAndFiles
.Where(x => x.ScheduleId == scheduleId)
.OrderByDescending(x => x.ScheduleId)
.Take(1).Select(x => x.Filename);
Run Code Online (Sandbox Code Playgroud)
这不起作用,虽然我明白为什么它不:
var tempFileName = from e in objContext.SchedulesAndFiles
where e.ScheduleId == scheduleId
orderby e.ScheduleId descending
select e.Filename;
Run Code Online (Sandbox Code Playgroud)
调用.Last()或.LastOrDefault()抛出异常(The query operator 'LastOrDefault' is not supported.)
我有一个使用的简单C#应用程序,Entity Framework 5.0应使用输出参数调用存储过程。问题在于它不起作用,而是返回-1。
c#我的代码如下所示:
// Define the output paramaters
SqlParameter operatorID = new SqlParameter("@operatorID", SqlDbType.Int);
operatorID.Direction = ParameterDirection.Output;
SqlParameter operatorCode = new SqlParameter("@operatorCode", SqlDbType.Int);
operatorCode.Direction = ParameterDirection.Output;
var parameters = new List<object>();
parameters.Add(operatorID);
parameters.Add(operatorCode);
var noOutput = context.Database.ExecuteSqlCommand("EXEC my_sp_name @operatorID, @operatorCode", parameters.ToArray());
Run Code Online (Sandbox Code Playgroud)
存储过程如下所示:
CREATE PROCEDURE [dbo].[my_sp_name]
(
@operatorID int OUTPUT
,@operatorCode int OUTPUT
)
AS
SET @operatorID = 123
Run Code Online (Sandbox Code Playgroud)
我知道这没有任何意义,但这只是一个测试。
执行c#代码后的问题是该noOutput值是-1并且该operatorID值是空的,我希望它在哪里123。
有人知道我做错了什么吗?
c# sql-server stored-procedures entity-framework entity-framework-5
我想将Spinner下拉项目的文本颜色更改为黑色.
我有一个自定义Spinner,列出了不同的语言.它有一个ImageView和一个TextView.微调器显示在带有白色文本的蓝色背景上,看起来很好.
问题是当它被点击时,下拉显示但文本几乎看不到,因为下拉的浅灰色和文本的白色.
这是Spinner的代码activity_main.xml:
<Spinner
android:id="@+id/languageSpinner"
style="@android:style/Widget.Material.Light.DropDownItem.Spinner"
android:layout_width="140dp"
android:layout_height="40dp"
android:prompt="@string/selectLanguageSpinner"
android:spinnerMode="dropdown" />
Run Code Online (Sandbox Code Playgroud)
这是spinner_row_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
<TextView
android:id="@+id/language"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:layout_marginEnd="10dp"
android:layout_marginStart="5dp"
android:gravity="center_vertical"
android:lineSpacingExtra="20dp"
android:minHeight="40dp"
android:textColor="@color/white"
android:textSize="20sp" />
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这里文本颜色设置为白色,因为当没有选择任何内容时我需要它是白色的.
这是以下代码styles.xml:
<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/myAppPrimaryColor</item>
<item name="colorPrimaryDark">@color/myAppPrimaryDarkColor</item>
<item name="colorAccent">@color/myAppAccentColor</item>
<item …Run Code Online (Sandbox Code Playgroud) 我试图从临时表中选择基于另一个临时表的记录,该临时表保存其先前的状态(StatusHistory).
因此,如果状态表中不存在记录,则应选择该记录.如果记录的状态与StatusHistory表中的状态不同,则应选择记录.否则,如果StatusHistory表中存在相同的状态,则应忽略它.
我有这个SQL但它似乎不是最好的解决方案.假设表中有数千条记录,你能指点我一个更好的方法吗?是否可以使用JOIN语句获得相同的结果?
SELECT AI.item
FROM #AllItems AI
WHERE NOT EXISTS (
SELECT * FROM #StatusHistory HS
WHERE HS.itemId = AI.itemId
) OR NOT AI.itemStatus IN ( SELECT HS.itemStatusHistory
FROM #StatusHistory HS
WHERE HS.itemId = AI.itemId
AND HS.itemId = AI.itemId )
Run Code Online (Sandbox Code Playgroud) 我试图更新对象列表中的所有重复项,如果它们存在于另一个集合中.
这是我的代码:
public class Cars
{
public string brand { get; set; }
public string model { get; set; }
public string allowed { get; set; }
}
var notAllowedModels = GetNotAllowedModels(); // returns a List<String> with model names
foreach(var car in cars) // cars is a List<Car>
{
if (notAllowedModels.Contains(car.model))
cars[cars.FindIndex(x => x.model == car.model)].allowed = "No";
else
cars[cars.FindIndex(x => x.model == car.model)].allowed = "Yes";
}
Run Code Online (Sandbox Code Playgroud)
如果列表中的模型是唯一的,那么它可以正常工作,但如果它们存在多次,那么只会更新第一个,而其他的将为空.
任何人都可以想到一种方法来更新notAllowedModels列表中存在的所有重复项吗?
我知道我可以使用FindAll而不是FindIndex但它返回一个列表,我不确定它是如何帮助我的,因为它将与重复的问题相同.
c# ×7
.net ×2
android ×2
list ×2
sql-server ×2
winforms ×2
angular ×1
arrays ×1
asp.net ×1
devexpress ×1
gridview ×1
linkbutton ×1
linq ×1
memory-leaks ×1
mysql ×1
spinner ×1
split ×1
sql ×1
updatepanel ×1